summaryrefslogtreecommitdiff
path: root/sw/source
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source')
-rw-r--r--sw/source/core/doc/DocumentStylePoolManager.cxx12
-rw-r--r--sw/source/core/edit/autofmt.cxx4
-rw-r--r--sw/source/core/edit/edredln.cxx23
-rw-r--r--sw/source/core/txtnode/fntcache.cxx4
-rw-r--r--sw/source/filter/ascii/parasc.cxx4
-rw-r--r--sw/source/filter/html/htmlform.cxx4
-rw-r--r--sw/source/filter/writer/writer.cxx4
-rw-r--r--sw/source/filter/ww8/wrtw8num.cxx4
-rw-r--r--sw/source/filter/ww8/ww8atr.cxx6
-rw-r--r--sw/source/ui/config/optpage.cxx8
-rw-r--r--sw/source/uibase/app/docshini.cxx12
-rw-r--r--sw/source/uibase/shells/annotsh.cxx4
-rw-r--r--sw/source/uibase/shells/drwtxtsh.cxx4
-rw-r--r--sw/source/uibase/shells/tabsh.cxx27
-rw-r--r--sw/source/uibase/shells/textsh.cxx4
-rw-r--r--sw/source/uibase/uiview/view2.cxx5
16 files changed, 92 insertions, 37 deletions
diff --git a/sw/source/core/doc/DocumentStylePoolManager.cxx b/sw/source/core/doc/DocumentStylePoolManager.cxx
index e6d73b90db65..60944d3e2619 100644
--- a/sw/source/core/doc/DocumentStylePoolManager.cxx
+++ b/sw/source/core/doc/DocumentStylePoolManager.cxx
@@ -139,8 +139,8 @@ namespace
vcl::Font aFnt( OutputDevice::GetDefaultFont( nFntType,
nLng, GetDefaultFontFlags::OnlyOne ) );
- rSet.Put( SvxFontItem( aFnt.GetFamilyType(), aFnt.GetFamilyName(),
- OUString(), aFnt.GetPitch(),
+ rSet.Put( SvxFontItem( aFnt.GetFamilyTypeMaybeAskConfig(), aFnt.GetFamilyName(),
+ OUString(), aFnt.GetPitchMaybeAskConfig(),
aFnt.GetCharSet(), n.nResFntId ));
}
}
@@ -168,8 +168,8 @@ namespace
vcl::Font aFnt( OutputDevice::GetDefaultFont( n.nFntType,
nLng, GetDefaultFontFlags::OnlyOne ) );
- rSet.Put( SvxFontItem( aFnt.GetFamilyType(), aFnt.GetFamilyName(),
- OUString(), aFnt.GetPitch(),
+ rSet.Put( SvxFontItem( aFnt.GetFamilyTypeMaybeAskConfig(), aFnt.GetFamilyName(),
+ OUString(), aFnt.GetPitchMaybeAskConfig(),
aFnt.GetCharSet(), n.nResFntId ));
}
}
@@ -808,8 +808,8 @@ SwTextFormatColl* DocumentStylePoolManager::GetTextCollFromPool( sal_uInt16 nId,
vcl::Font aFnt( OutputDevice::GetDefaultFont( nFontTypes[i],
nLng, GetDefaultFontFlags::OnlyOne ) );
- aSet.Put( SvxFontItem( aFnt.GetFamilyType(), aFnt.GetFamilyName(),
- OUString(), aFnt.GetPitch(),
+ aSet.Put( SvxFontItem( aFnt.GetFamilyTypeMaybeAskConfig(), aFnt.GetFamilyName(),
+ OUString(), aFnt.GetPitchMaybeAskConfig(),
aFnt.GetCharSet(), aFontWhich[i] ));
}
diff --git a/sw/source/core/edit/autofmt.cxx b/sw/source/core/edit/autofmt.cxx
index df1346d7dadd..8b5dd3c05224 100644
--- a/sw/source/core/edit/autofmt.cxx
+++ b/sw/source/core/edit/autofmt.cxx
@@ -1753,10 +1753,10 @@ void SwAutoFormat::BuildEnum( sal_uInt16 nLvl, sal_uInt16 nDigitLevel )
m_aDelPam.SetMark();
*m_aDelPam.GetPoint() = m_pCurTextFrame->MapViewToModelPos(TextFrameIndex(1));
SetAllScriptItem( aSet,
- SvxFontItem( m_aFlags.aBulletFont.GetFamilyType(),
+ SvxFontItem( m_aFlags.aBulletFont.GetFamilyTypeMaybeAskConfig(),
m_aFlags.aBulletFont.GetFamilyName(),
m_aFlags.aBulletFont.GetStyleName(),
- m_aFlags.aBulletFont.GetPitch(),
+ m_aFlags.aBulletFont.GetPitchMaybeAskConfig(),
m_aFlags.aBulletFont.GetCharSet(),
RES_CHRATR_FONT ) );
m_pDoc->SetFormatItemByAutoFormat( m_aDelPam, aSet );
diff --git a/sw/source/core/edit/edredln.cxx b/sw/source/core/edit/edredln.cxx
index 037f8e0558f2..8d992e56ddef 100644
--- a/sw/source/core/edit/edredln.cxx
+++ b/sw/source/core/edit/edredln.cxx
@@ -80,6 +80,29 @@ bool SwEditShell::AcceptRedline( SwRedlineTable::size_type nPos )
return bRet;
}
+void SwEditShell::ReinstateRedline(SwRedlineTable::size_type nPos)
+{
+ CurrShell aCurr(this);
+ StartAllAction();
+
+ if (!IsRedlineOn())
+ {
+ RedlineFlags nMode = GetRedlineFlags();
+ SetRedlineFlags(nMode | RedlineFlags::On, /*bRecordAllViews=*/false);
+ }
+
+ const SwRangeRedline& rRedline = GetRedline(nPos);
+ SwPaM aPaM(*rRedline.GetPoint());
+ aPaM.SetMark();
+ *aPaM.GetMark() = *rRedline.GetMark();
+ if (rRedline.GetType() == RedlineType::Insert)
+ {
+ DeleteSel(aPaM, /*isArtificialSelection=*/true);
+ }
+
+ EndAllAction();
+}
+
bool SwEditShell::RejectRedline( SwRedlineTable::size_type nPos )
{
CurrShell aCurr( this );
diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx
index d444632becd3..fe7330276731 100644
--- a/sw/source/core/txtnode/fntcache.cxx
+++ b/sw/source/core/txtnode/fntcache.cxx
@@ -449,8 +449,8 @@ void SwFntObj::CreateScrFont( const SwViewShell& rSh, const OutputDevice& rOut )
FontMetric aMet = pPrt->GetFontMetric( );
// Don't lose "faked" properties of the logical font that don't truly
// exist in the physical font metrics which vcl which fake up for us
- aMet.SetWeight(m_pScrFont->GetWeight());
- aMet.SetItalic(m_pScrFont->GetItalic());
+ aMet.SetWeight(m_pScrFont->GetWeightMaybeAskConfig());
+ aMet.SetItalic(m_pScrFont->GetItalicMaybeAskConfig());
m_bSymbol = RTL_TEXTENCODING_SYMBOL == aMet.GetCharSet();
diff --git a/sw/source/filter/ascii/parasc.cxx b/sw/source/filter/ascii/parasc.cxx
index b3e2c16bd42e..f0686329d5e6 100644
--- a/sw/source/filter/ascii/parasc.cxx
+++ b/sw/source/filter/ascii/parasc.cxx
@@ -137,8 +137,8 @@ SwASCIIParser::SwASCIIParser(SwDoc& rD, const SwPaM& rCursor, SvStream& rIn, boo
vcl::Font aTextFont(m_rOpt.GetFontName(), Size(0, 10));
if (m_rDoc.getIDocumentDeviceAccess().getPrinter(false))
aTextFont = m_rDoc.getIDocumentDeviceAccess().getPrinter(false)->GetFontMetric(aTextFont);
- SvxFontItem aFont( aTextFont.GetFamilyType(), aTextFont.GetFamilyName(),
- OUString(), aTextFont.GetPitch(), aTextFont.GetCharSet(), RES_CHRATR_FONT );
+ SvxFontItem aFont( aTextFont.GetFamilyTypeMaybeAskConfig(), aTextFont.GetFamilyName(),
+ OUString(), aTextFont.GetPitchMaybeAskConfig(), aTextFont.GetCharSet(), RES_CHRATR_FONT );
m_oItemSet->Put(aFont);
aFont.SetWhich(RES_CHRATR_CJK_FONT);
m_oItemSet->Put(aFont);
diff --git a/sw/source/filter/html/htmlform.cxx b/sw/source/filter/html/htmlform.cxx
index 8e3ba7fea86f..dc7f89e11074 100644
--- a/sw/source/filter/html/htmlform.cxx
+++ b/sw/source/filter/html/htmlform.cxx
@@ -596,14 +596,14 @@ static void lcl_html_setFixedFontProperty(
rPropSet->setPropertyValue(u"FontStyleName"_ustr,
aTmp );
- aTmp <<= static_cast<sal_Int16>(aFixedFont.GetFamilyType());
+ aTmp <<= static_cast<sal_Int16>(aFixedFont.GetFamilyTypeMaybeAskConfig());
rPropSet->setPropertyValue(u"FontFamily"_ustr, aTmp );
aTmp <<= static_cast<sal_Int16>(aFixedFont.GetCharSet());
rPropSet->setPropertyValue(u"FontCharset"_ustr,
aTmp );
- aTmp <<= static_cast<sal_Int16>(aFixedFont.GetPitch());
+ aTmp <<= static_cast<sal_Int16>(aFixedFont.GetPitchMaybeAskConfig());
rPropSet->setPropertyValue(u"FontPitch"_ustr, aTmp );
aTmp <<= float(10.0);
diff --git a/sw/source/filter/writer/writer.cxx b/sw/source/filter/writer/writer.cxx
index 0576663965c9..3d8ead0cc4c9 100644
--- a/sw/source/filter/writer/writer.cxx
+++ b/sw/source/filter/writer/writer.cxx
@@ -340,9 +340,9 @@ void Writer::PutNumFormatFontsInAttrPool()
else if( *pFont == *pDefFont )
bCheck = true;
- AddFontItem( rPool, SvxFontItem( pFont->GetFamilyType(),
+ AddFontItem( rPool, SvxFontItem( pFont->GetFamilyTypeMaybeAskConfig(),
pFont->GetFamilyName(), pFont->GetStyleName(),
- pFont->GetPitch(), pFont->GetCharSet(), RES_CHRATR_FONT ));
+ pFont->GetPitchMaybeAskConfig(), pFont->GetCharSet(), RES_CHRATR_FONT ));
}
}
}
diff --git a/sw/source/filter/ww8/wrtw8num.cxx b/sw/source/filter/ww8/wrtw8num.cxx
index e8f7b197ed59..217c2ce4412b 100644
--- a/sw/source/filter/ww8/wrtw8num.cxx
+++ b/sw/source/filter/ww8/wrtw8num.cxx
@@ -521,7 +521,7 @@ void MSWordExportBase::NumberingLevel(
eChrSet = pBulletFont->GetCharSet();
sFontName = pBulletFont->GetFamilyName();
- eFamily = pBulletFont->GetFamilyType();
+ eFamily = pBulletFont->GetFamilyTypeMaybeAskConfig();
if (IsOpenSymbol(sFontName))
SubstituteBullet(sNumStr, eChrSet, sFontName);
@@ -547,7 +547,7 @@ void MSWordExportBase::NumberingLevel(
if (sFontName.isEmpty())
sFontName = pBulletFont->GetFamilyName();
- pPseudoFont.reset(new wwFont( sFontName, pBulletFont->GetPitch(),
+ pPseudoFont.reset(new wwFont( sFontName, pBulletFont->GetPitchMaybeAskConfig(),
eFamily, eChrSet));
}
else
diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx
index 3b3efccfbbe3..db29159a5c7e 100644
--- a/sw/source/filter/ww8/ww8atr.cxx
+++ b/sw/source/filter/ww8/ww8atr.cxx
@@ -4355,7 +4355,7 @@ void WW8AttributeOutput::FormatFirstLineIndent(SvxFirstLineIndentItem const& rFi
{
// sprmPDxcLeft1
m_rWW8Export.InsUInt16(0x4457);
- m_rWW8Export.InsUInt16(o3tl::narrowing<sal_uInt16>(stOffset.m_dValue * 100.0));
+ m_rWW8Export.InsInt16(o3tl::narrowing<sal_Int16>(stOffset.m_dValue * 100.0));
}
else
{
@@ -4386,7 +4386,7 @@ void WW8AttributeOutput::FormatTextLeftMargin(SvxTextLeftMarginItem const& rText
// sprmPDxcLeft
m_rWW8Export.InsUInt16(0x4456);
- m_rWW8Export.InsUInt16(o3tl::narrowing<sal_uInt16>(stOffset.m_dValue * 100.0));
+ m_rWW8Export.InsInt16(o3tl::narrowing<sal_Int16>(stOffset.m_dValue * 100.0));
}
else
{
@@ -4403,7 +4403,7 @@ void WW8AttributeOutput::FormatRightMargin(SvxRightMarginItem const& rRightMargi
{
// sprmPDxcRight
m_rWW8Export.InsUInt16(0x4455);
- m_rWW8Export.InsUInt16(o3tl::narrowing<sal_uInt16>(stOffset.m_dValue * 100.0));
+ m_rWW8Export.InsInt16(o3tl::narrowing<sal_Int16>(stOffset.m_dValue * 100.0));
}
else
{
diff --git a/sw/source/ui/config/optpage.cxx b/sw/source/ui/config/optpage.cxx
index 3591ffb215ec..c2b2efe7127c 100644
--- a/sw/source/ui/config/optpage.cxx
+++ b/sw/source/ui/config/optpage.cxx
@@ -921,8 +921,8 @@ static void lcl_SetColl(SwWrtShell* pWrtShell, sal_uInt16 nType,
if( pPrt )
aFont = pPrt->GetFontMetric( aFont );
SwTextFormatColl *pColl = pWrtShell->GetTextCollFromPool(nType);
- pColl->SetFormatAttr(SvxFontItem(aFont.GetFamilyType(), aFont.GetFamilyName(),
- OUString(), aFont.GetPitch(), aFont.GetCharSet(), nFontWhich));
+ pColl->SetFormatAttr(SvxFontItem(aFont.GetFamilyTypeMaybeAskConfig(), aFont.GetFamilyName(),
+ OUString(), aFont.GetPitchMaybeAskConfig(), aFont.GetCharSet(), nFontWhich));
}
static void lcl_SetColl(SwWrtShell* pWrtShell, sal_uInt16 nType,
@@ -1014,8 +1014,8 @@ bool SwStdFontTabPage::FillItemSet( SfxItemSet* )
vcl::Font aFont( sStandard, Size( 0, 10 ) );
if( pPrinter )
aFont = pPrinter->GetFontMetric( aFont );
- m_pWrtShell->SetDefault(SvxFontItem(aFont.GetFamilyType(), aFont.GetFamilyName(),
- OUString(), aFont.GetPitch(), aFont.GetCharSet(), nFontWhich));
+ m_pWrtShell->SetDefault(SvxFontItem(aFont.GetFamilyTypeMaybeAskConfig(), aFont.GetFamilyName(),
+ OUString(), aFont.GetPitchMaybeAskConfig(), aFont.GetCharSet(), nFontWhich));
SwTextFormatColl *pColl = m_pWrtShell->GetTextCollFromPool(RES_POOLCOLL_STANDARD);
pColl->ResetFormatAttr(nFontWhich);
bMod = true;
diff --git a/sw/source/uibase/app/docshini.cxx b/sw/source/uibase/app/docshini.cxx
index 90d9629b1d2f..68dc5c5cfc7d 100644
--- a/sw/source/uibase/app/docshini.cxx
+++ b/sw/source/uibase/app/docshini.cxx
@@ -179,8 +179,8 @@ bool SwDocShell::InitNew( const uno::Reference < embed::XStorage >& xStor )
aFont = pPrt->GetFontMetric( aFont );
}
- pFontItem.reset(new SvxFontItem(aFont.GetFamilyType(), aFont.GetFamilyName(),
- OUString(), aFont.GetPitch(), aFont.GetCharSet(), nFontWhich));
+ pFontItem.reset(new SvxFontItem(aFont.GetFamilyTypeMaybeAskConfig(), aFont.GetFamilyName(),
+ OUString(), aFont.GetPitchMaybeAskConfig(), aFont.GetCharSet(), nFontWhich));
}
else
{
@@ -196,8 +196,8 @@ bool SwDocShell::InitNew( const uno::Reference < embed::XStorage >& xStor )
nFontTypes[i],
eLanguage,
GetDefaultFontFlags::OnlyOne );
- pFontItem.reset(new SvxFontItem(aLangDefFont.GetFamilyType(), aLangDefFont.GetFamilyName(),
- OUString(), aLangDefFont.GetPitch(), aLangDefFont.GetCharSet(), nFontWhich));
+ pFontItem.reset(new SvxFontItem(aLangDefFont.GetFamilyTypeMaybeAskConfig(), aLangDefFont.GetFamilyName(),
+ OUString(), aLangDefFont.GetPitchMaybeAskConfig(), aLangDefFont.GetCharSet(), nFontWhich));
}
m_xDoc->SetDefault(*pFontItem);
if( !bHTMLTemplSet )
@@ -267,8 +267,8 @@ bool SwDocShell::InitNew( const uno::Reference < embed::XStorage >& xStor )
SfxItemState::SET != pColl->GetAttrSet().GetItemState(
nFontWhich, false ) )
{
- pColl->SetFormatAttr(SvxFontItem(aFont.GetFamilyType(), aFont.GetFamilyName(),
- OUString(), aFont.GetPitch(), aFont.GetCharSet(), nFontWhich));
+ pColl->SetFormatAttr(SvxFontItem(aFont.GetFamilyTypeMaybeAskConfig(), aFont.GetFamilyName(),
+ OUString(), aFont.GetPitchMaybeAskConfig(), aFont.GetCharSet(), nFontWhich));
}
}
sal_Int32 nFontHeight = pStdFont->GetFontHeight( static_cast< sal_Int8 >(aFontIdPoolId[nIdx]), 0, eLanguage );
diff --git a/sw/source/uibase/shells/annotsh.cxx b/sw/source/uibase/shells/annotsh.cxx
index a0f889e69406..cb358e164406 100644
--- a/sw/source/uibase/shells/annotsh.cxx
+++ b/sw/source/uibase/shells/annotsh.cxx
@@ -1874,8 +1874,8 @@ void SwAnnotationShell::InsertSymbol(SfxRequest& rReq)
// Attributing (set font)
SfxItemSet aSetFont( *aFontSet.GetPool(), aFontSet.GetRanges() );
- SvxFontItem aFontItem (aFont.GetFamilyType(), aFont.GetFamilyName(),
- aFont.GetStyleName(), aFont.GetPitch(),
+ SvxFontItem aFontItem (aFont.GetFamilyTypeMaybeAskConfig(), aFont.GetFamilyName(),
+ aFont.GetStyleName(), aFont.GetPitchMaybeAskConfig(),
aFont.GetCharSet(),
EE_CHAR_FONTINFO );
SvtScriptType nScriptBreak = g_pBreakIt->GetAllScriptsOfText( sSym );
diff --git a/sw/source/uibase/shells/drwtxtsh.cxx b/sw/source/uibase/shells/drwtxtsh.cxx
index 3679fefda26f..fa6d5f39ee7a 100644
--- a/sw/source/uibase/shells/drwtxtsh.cxx
+++ b/sw/source/uibase/shells/drwtxtsh.cxx
@@ -759,8 +759,8 @@ void SwDrawTextShell::InsertSymbol(SfxRequest& rReq)
// assign attributes (Set font)
SfxItemSet aFontAttribSet( *aFontSet.GetPool(), aFontSet.GetRanges() );
- SvxFontItem aFontItem (aFont.GetFamilyType(), aFont.GetFamilyName(),
- aFont.GetStyleName(), aFont.GetPitch(),
+ SvxFontItem aFontItem (aFont.GetFamilyTypeMaybeAskConfig(), aFont.GetFamilyName(),
+ aFont.GetStyleName(), aFont.GetPitchMaybeAskConfig(),
aFont.GetCharSet(),
EE_CHAR_FONTINFO );
nScript = g_pBreakIt->GetAllScriptsOfText( sSym );
diff --git a/sw/source/uibase/shells/tabsh.cxx b/sw/source/uibase/shells/tabsh.cxx
index 3664e17c50de..6ebf4b9e1063 100644
--- a/sw/source/uibase/shells/tabsh.cxx
+++ b/sw/source/uibase/shells/tabsh.cxx
@@ -73,6 +73,9 @@
#include <tblsel.hxx>
#include <viewopt.hxx>
#include <tabfrm.hxx>
+#include <frame.hxx>
+#include <pagefrm.hxx>
+#include <cntfrm.hxx>
#include <strings.hrc>
#include <cmdid.h>
@@ -598,6 +601,12 @@ void SwTableShell::Execute(SfxRequest &rReq)
case FN_INSERT_TABLE:
InsertTable( rReq );
break;
+ case FN_BREAK_ABOVE_TABLE:
+ {
+ rSh.MoveTable( GotoCurrTable, fnTableStart );
+ rSh.SplitNode( false );
+ break;
+ }
case FN_FORMAT_TABLE_DLG:
{
//#127012# get the bindings before the dialog is called
@@ -1539,7 +1548,25 @@ void SwTableShell::GetState(SfxItemSet &rSet)
rSet.Put(SfxBoolItem(nSlot, bSet));
}
break;
+ case FN_BREAK_ABOVE_TABLE:
+ {
+ // exec just moves on top and adds the break, which however makes only sense if the table
+ // is the very first item of the document; the command should be hidden otherwise
+ SwContentFrame* curFrame = rSh.GetCurrFrame();
+ SwPageFrame* pageFrame = curFrame->FindPageFrame();
+ SwFrame* frame = pageFrame->Lower();
+ while(!frame->IsContentFrame())
+ {
+ frame = frame->GetLower();
+ }
+
+ if(frame->FindTabFrame() != curFrame->FindTabFrame())
+ {
+ rSet.DisableItem(nSlot);
+ }
+ }
+ break;
case SID_ATTR_PARA_SPLIT:
rSet.Put( pFormat->GetKeep() );
break;
diff --git a/sw/source/uibase/shells/textsh.cxx b/sw/source/uibase/shells/textsh.cxx
index bc6e8b74254d..0b54efa2583e 100644
--- a/sw/source/uibase/shells/textsh.cxx
+++ b/sw/source/uibase/shells/textsh.cxx
@@ -1077,8 +1077,8 @@ void SwTextShell::InsertSymbol( SfxRequest& rReq )
{
std::unique_ptr<SvxFontItem> aNewFontItem(aFont->Clone());
aNewFontItem->SetFamilyName( aNewFont.GetFamilyName() );
- aNewFontItem->SetFamily( aNewFont.GetFamilyType());
- aNewFontItem->SetPitch( aNewFont.GetPitch());
+ aNewFontItem->SetFamily( aNewFont.GetFamilyTypeMaybeAskConfig());
+ aNewFontItem->SetPitch( aNewFont.GetPitchMaybeAskConfig());
aNewFontItem->SetCharSet( aNewFont.GetCharSet() );
SfxItemSet aRestoreSet(SfxItemSet::makeFixedSfxItemSet<
diff --git a/sw/source/uibase/uiview/view2.cxx b/sw/source/uibase/uiview/view2.cxx
index 4219a2415a5d..7dae30f73886 100644
--- a/sw/source/uibase/uiview/view2.cxx
+++ b/sw/source/uibase/uiview/view2.cxx
@@ -891,6 +891,7 @@ void SwView::Execute(SfxRequest &rReq)
case FN_REDLINE_REJECT_DIRECT:
case FN_REDLINE_ACCEPT_TONEXT:
case FN_REDLINE_REJECT_TONEXT:
+ case FN_REDLINE_REINSTATE_DIRECT:
{
SwDoc *pDoc = m_pWrtShell->GetDoc();
SwPaM *pCursor = m_pWrtShell->GetCursor();
@@ -1070,6 +1071,10 @@ void SwView::Execute(SfxRequest &rReq)
{
if (FN_REDLINE_ACCEPT_DIRECT == nSlot || FN_REDLINE_ACCEPT_TONEXT == nSlot)
m_pWrtShell->AcceptRedline(nRedline);
+ else if (nSlot == FN_REDLINE_REINSTATE_DIRECT)
+ {
+ m_pWrtShell->ReinstateRedline(nRedline);
+ }
else
m_pWrtShell->RejectRedline(nRedline);
}