diff options
Diffstat (limited to 'sc/source/ui/app')
-rw-r--r-- | sc/source/ui/app/inputhdl.cxx | 28 | ||||
-rw-r--r-- | sc/source/ui/app/inputwin.cxx | 22 | ||||
-rw-r--r-- | sc/source/ui/app/msgpool.cxx | 4 | ||||
-rw-r--r-- | sc/source/ui/app/scmod.cxx | 14 | ||||
-rw-r--r-- | sc/source/ui/app/transobj.cxx | 2 | ||||
-rw-r--r-- | sc/source/ui/app/uiitems.cxx | 35 |
6 files changed, 56 insertions, 49 deletions
diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx index e778d27886c0..e1be37a897d7 100644 --- a/sc/source/ui/app/inputhdl.cxx +++ b/sc/source/ui/app/inputhdl.cxx @@ -47,6 +47,7 @@ #include <sfx2/printer.hxx> #include <svl/numformat.hxx> #include <svl/zforlist.hxx> +#include <svtools/langtab.hxx> #include <unotools/localedatawrapper.hxx> #include <unotools/charclass.hxx> #include <utility> @@ -1822,7 +1823,7 @@ void ScInputHandler::LOKPasteFunctionData(const OUString& rFunctionName) } } -void ScTabViewShell::LOKSendFormulabarUpdate(EditView* pActiveView, +void ScTabViewShell::LOKSendFormulabarUpdate(const EditView* pActiveView, const OUString& rText, const ESelection& rSelection) { @@ -1858,6 +1859,18 @@ void ScTabViewShell::LOKSendFormulabarUpdate(EditView* pActiveView, maSendFormulabarUpdate.m_aText = rText; maSendFormulabarUpdate.m_aSelection = aSelection; maSendFormulabarUpdate.m_nTimeStamp = now; + + ScViewData& rViewData = this->GetViewData(); + const ScDocument& rDoc = rViewData.GetDocShell()->GetDocument(); + const ScPatternAttr* pPattern = rDoc.GetPattern(rViewData.GetCurX(), rViewData.GetCurY(), rViewData.GetRefTabNo()); + + if (pPattern) + { + SvNumberFormatter* pFormatter = rDoc.GetFormatTable(); + sal_uInt32 nFormat = pPattern->GetNumberFormat( pFormatter ); + maSendFormulabarUpdate.m_separator = pFormatter->GetFormatDecimalSep(nFormat); + } + maSendFormulabarUpdate.Send(); } @@ -1867,6 +1880,7 @@ void ScTabViewShell::SendFormulabarUpdate::Send() (*pData)["action_type"_ostr] = "setText"; (*pData)["text"_ostr] = m_aText; (*pData)["selection"_ostr] = m_aSelection; + (*pData)["separator"_ostr] = m_separator; OUString sWindowId = OUString::number(m_nShellId) + "formulabar"; jsdialog::SendAction(sWindowId, u"sc_input_window"_ustr, std::move(pData)); } @@ -2840,8 +2854,12 @@ void ScInputHandler::DataChanged( bool bFromTopNotify, bool bSetModified ) if (bUpdateKit) { UpdateActiveView(); + if (pActiveView) + { + pActiveView->ShowCursor(); // Send show cursor command after registering the view. aSel = pActiveView->GetSelection(); + } OUString aText = ScEditUtil::GetMultilineString(*mpEditEngine); pActiveViewSh->libreOfficeKitViewCallback(LOK_CALLBACK_CELL_FORMULA, aText.toUtf8()); @@ -3457,8 +3475,14 @@ void ScInputHandler::EnterHandler2(ScEnterMode nBlockMode, bool bForget, OUStrin ScInputStatusItem aItemCorrected(FID_INPUTLINE_STATUS, aCursorPos, aCursorPos, aCursorPos, aString, pObject.get()); + + sc::MisspellRangeResult aMisspellRangeResult; if ( !aMisspellRanges.empty() ) - aItemCorrected.SetMisspellRanges(&aMisspellRanges); + { + aMisspellRangeResult.meCellLang = mpEditEngine->GetDefaultLanguage(); + aMisspellRangeResult.mpRanges = &aMisspellRanges; + aItemCorrected.SetMisspellRanges(aMisspellRangeResult); + } aArgs[0] = &aItemCorrected; rBindings.Execute(nId, aArgs); diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx index 9ee7648a7a3c..d170f1fdb821 100644 --- a/sc/source/ui/app/inputwin.cxx +++ b/sc/source/ui/app/inputwin.cxx @@ -1553,14 +1553,14 @@ void ScTextWnd::InitEditEngine() UpdateAutoCorrFlag(); { - auto pSet = std::make_unique<SfxItemSet>( m_xEditEngine->GetEmptyItemSet() ); - EditEngine::SetFontInfoInItemSet( *pSet, aTextFont ); - lcl_ExtendEditFontAttribs( *pSet ); + SfxItemSet aSet( m_xEditEngine->GetEmptyItemSet() ); + EditEngine::SetFontInfoInItemSet( aSet, aTextFont ); + lcl_ExtendEditFontAttribs( aSet ); // turn off script spacing to match DrawText output - pSet->Put( SvxScriptSpaceItem( false, EE_PARA_ASIANCJKSPACING ) ); + aSet.Put( SvxScriptSpaceItem( false, EE_PARA_ASIANCJKSPACING ) ); if ( bIsRTL ) - lcl_ModifyRTLDefaults( *pSet ); - static_cast<ScEditEngineDefaulter*>(m_xEditEngine.get())->SetDefaults( std::move(pSet) ); + lcl_ModifyRTLDefaults( aSet ); + static_cast<ScEditEngineDefaulter*>(m_xEditEngine.get())->SetDefaults( std::move(aSet) ); } // If the Cell contains URLFields, they need to be taken over into the entry row, @@ -2117,12 +2117,12 @@ void ScTextWnd::MakeDialogEditView() m_xEditEngine->SetWordDelimiters( m_xEditEngine->GetWordDelimiters() + "=" ); m_xEditEngine->SetPaperSize( Size( bIsRTL ? USHRT_MAX : THESIZE, 300 ) ); - auto pSet = std::make_unique<SfxItemSet>( m_xEditEngine->GetEmptyItemSet() ); - EditEngine::SetFontInfoInItemSet( *pSet, aTextFont ); - lcl_ExtendEditFontAttribs( *pSet ); + SfxItemSet aSet( m_xEditEngine->GetEmptyItemSet() ); + EditEngine::SetFontInfoInItemSet( aSet, aTextFont ); + lcl_ExtendEditFontAttribs( aSet ); if ( bIsRTL ) - lcl_ModifyRTLDefaults( *pSet ); - static_cast<ScEditEngineDefaulter*>(m_xEditEngine.get())->SetDefaults( std::move(pSet) ); + lcl_ModifyRTLDefaults( aSet ); + static_cast<ScEditEngineDefaulter*>(m_xEditEngine.get())->SetDefaults( std::move(aSet) ); m_xEditEngine->SetUpdateLayout( bPrevUpdateLayout ); m_xEditView = std::make_unique<EditView>(m_xEditEngine.get(), nullptr); diff --git a/sc/source/ui/app/msgpool.cxx b/sc/source/ui/app/msgpool.cxx index 4675dc285ea0..a8ab8230d2a3 100644 --- a/sc/source/ui/app/msgpool.cxx +++ b/sc/source/ui/app/msgpool.cxx @@ -32,8 +32,8 @@ static ItemInfoPackage& getItemInfoPackageScMessage() // m_nWhich, m_pItem, m_nSlotID, m_nItemInfoFlags { SCITEM_STRING, new SfxStringItem(SCITEM_STRING, OUString() ), 0, SFX_ITEMINFOFLAG_NONE }, { SCITEM_SEARCHDATA, new SvxSearchItem(SCITEM_SEARCHDATA ), 0, SFX_ITEMINFOFLAG_NONE }, - { SCITEM_SORTDATA, new ScSortItem(SCITEM_SORTDATA, nullptr ), SID_SORT, SFX_ITEMINFOFLAG_NONE }, - { SCITEM_QUERYDATA, new ScQueryItem(SCITEM_QUERYDATA, nullptr, nullptr ), SID_QUERY, SFX_ITEMINFOFLAG_NONE }, + { SCITEM_SORTDATA, new ScSortItem(SCITEM_SORTDATA, nullptr, nullptr), SID_SORT, SFX_ITEMINFOFLAG_NONE }, + { SCITEM_QUERYDATA, new ScQueryItem(SCITEM_QUERYDATA, nullptr ), SID_QUERY, SFX_ITEMINFOFLAG_NONE }, { SCITEM_SUBTDATA, new ScSubTotalItem(SCITEM_SUBTDATA, nullptr, nullptr ), SID_SUBTOTALS, SFX_ITEMINFOFLAG_NONE }, { SCITEM_CONSOLIDATEDATA, new ScConsolidateItem(SCITEM_CONSOLIDATEDATA, nullptr ), SID_CONSOLIDATE, SFX_ITEMINFOFLAG_NONE }, { SCITEM_PIVOTDATA, new ScPivotItem(SCITEM_PIVOTDATA, nullptr, nullptr, false ), SID_PIVOT_TABLE, SFX_ITEMINFOFLAG_NONE }, diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx index 84238486fa6b..e27ba3cd98f9 100644 --- a/sc/source/ui/app/scmod.cxx +++ b/sc/source/ui/app/scmod.cxx @@ -143,6 +143,7 @@ ScModule::ScModule( SfxObjectFactory* pFact ) : ErrCodeArea::Sc, GetResLocale()) ); + m_aIdleTimer.SetPriority(TaskPriority::DEFAULT_IDLE); m_aIdleTimer.SetTimeout(SC_IDLE_MIN); m_aIdleTimer.SetInvokeHandler( LINK( this, ScModule, IdleHandler ) ); m_aIdleTimer.Start(); @@ -237,7 +238,7 @@ void ScModule::ConfigurationChanged(utl::ConfigurationBroadcaster* p, Configurat } // if nothing changed, and the hint was OnlyCurrentDocumentColorScheme we can skip invalidate - const bool bSkipInvalidate = bUnchanged && eHints == ConfigurationHints::OnlyCurrentDocumentColorScheme; + const bool bSkipInvalidate = bKit ||(bUnchanged && eHints == ConfigurationHints::OnlyCurrentDocumentColorScheme); if (!bSkipInvalidate) { pViewSh->PaintGrid(); @@ -566,7 +567,7 @@ void ScModule::GetState( SfxItemSet& rSet ) rSet.Put( SfxUInt32Item( nWhich, GetAppOptions().GetStatusFunc() ) ); break; case SID_ATTR_METRIC: - rSet.Put( SfxUInt16Item( nWhich, sal::static_int_cast<sal_uInt16>(GetAppOptions().GetAppMetric()) ) ); + rSet.Put(SfxUInt16Item(nWhich, sal::static_int_cast<sal_uInt16>(GetMetric()))); break; case SID_AUTOSPELL_CHECK: rSet.Put( SfxBoolItem( nWhich, pTabViewShell->IsAutoSpell()) ); @@ -933,6 +934,13 @@ SvtUserOptions& ScModule::GetUserOptions() return *m_pUserOptions; } +FieldUnit ScModule::GetMetric() +{ + if (comphelper::LibreOfficeKit::isActive()) + return SfxModule::GetFieldUnit(); + return GetAppOptions().GetAppMetric(); +} + LanguageType ScModule::GetOptDigitLanguage() { SvtCTLOptions::TextNumerals eNumerals = SvtCTLOptions::GetCTLTextNumerals(); @@ -2344,7 +2352,7 @@ bool ScModule::HasThesaurusLanguage( LanguageType nLang ) return bHasLang; } -std::optional<SfxStyleFamilies> ScModule::CreateStyleFamilies() +SfxStyleFamilies ScModule::CreateStyleFamilies() { SfxStyleFamilies aStyleFamilies; std::locale resLocale = ScModule::get()->GetResLocale(); diff --git a/sc/source/ui/app/transobj.cxx b/sc/source/ui/app/transobj.cxx index 16a93d557461..afa196082728 100644 --- a/sc/source/ui/app/transobj.cxx +++ b/sc/source/ui/app/transobj.cxx @@ -108,7 +108,7 @@ void ScTransferObj::PaintToDev( OutputDevice* pDev, ScDocument& rDoc, double nPr aViewData.SetScreen( rBlock.aStart.Col(), rBlock.aStart.Row(), rBlock.aEnd.Col(), rBlock.aEnd.Row() ); - ScPrintFunc::DrawToDev( rDoc, pDev, nPrintFactor, aBound, &aViewData, false/*bMetaFile*/ ); + ScPrintFunc::DrawToDev( rDoc, pDev, nPrintFactor, aBound, aViewData, false/*bMetaFile*/ ); } ScTransferObj::ScTransferObj( const std::shared_ptr<ScDocument>& pClipDoc, TransferableObjectDescriptor aDesc ) : diff --git a/sc/source/ui/app/uiitems.cxx b/sc/source/ui/app/uiitems.cxx index bddd0c689aea..03968d863c18 100644 --- a/sc/source/ui/app/uiitems.cxx +++ b/sc/source/ui/app/uiitems.cxx @@ -38,8 +38,7 @@ ScInputStatusItem::ScInputStatusItem( aStartPos ( rStartPos ), aEndPos ( rEndPos ), aString (std::move( _aString )), - pEditData ( pData ? pData->Clone() : nullptr ), - mpMisspellRanges(nullptr) + pEditData ( pData ? pData->Clone() : nullptr ) { } @@ -50,7 +49,7 @@ ScInputStatusItem::ScInputStatusItem( const ScInputStatusItem& rItem ) : aEndPos ( rItem.aEndPos ), aString ( rItem.aString ), pEditData ( rItem.pEditData ? rItem.pEditData->Clone() : nullptr ), - mpMisspellRanges(rItem.mpMisspellRanges) + maMisspellRanges(rItem.maMisspellRanges) { } @@ -74,9 +73,9 @@ ScInputStatusItem* ScInputStatusItem::Clone( SfxItemPool * ) const return new ScInputStatusItem( *this ); } -void ScInputStatusItem::SetMisspellRanges( const std::vector<editeng::MisspellRanges>* pRanges ) +void ScInputStatusItem::SetMisspellRanges( const sc::MisspellRangeResult& rRanges ) { - mpMisspellRanges = pRanges; + maMisspellRanges = rRanges; } // ScPaintHint was moved to hints.cxx @@ -132,14 +131,6 @@ ScSortItem::ScSortItem( sal_uInt16 nWhichP, if ( pSortData ) theSortData = *pSortData; } -ScSortItem::ScSortItem( sal_uInt16 nWhichP, - const ScSortParam* pSortData ) : - SfxPoolItem ( nWhichP ), - pViewData ( nullptr ) -{ - if ( pSortData ) theSortData = *pSortData; -} - bool ScSortItem::operator==( const SfxPoolItem& rItem ) const { assert(SfxPoolItem::operator==(rItem)); @@ -166,22 +157,8 @@ bool ScSortItem::QueryValue( css::uno::Any& rVal, sal_uInt8 /* nMemberUd */ ) co * Data for the Filter dialog */ ScQueryItem::ScQueryItem( sal_uInt16 nWhichP, - ScViewData* ptrViewData, - const ScQueryParam* pQueryData ) : - SfxPoolItem ( nWhichP ), - pViewData ( ptrViewData ), - bIsAdvanced ( false ) -{ - if (pQueryData) - mpQueryData.reset(new ScQueryParam(*pQueryData)); - else - mpQueryData.reset(new ScQueryParam); -} - -ScQueryItem::ScQueryItem( sal_uInt16 nWhichP, const ScQueryParam* pQueryData ) : SfxPoolItem ( nWhichP ), - pViewData ( nullptr ), bIsAdvanced ( false ) { if (pQueryData) @@ -193,7 +170,6 @@ ScQueryItem::ScQueryItem( sal_uInt16 nWhichP, ScQueryItem::ScQueryItem( const ScQueryItem& rItem ) : SfxPoolItem ( rItem ), mpQueryData(new ScQueryParam(*rItem.mpQueryData)), - pViewData ( rItem.pViewData ), aAdvSource ( rItem.aAdvSource ), bIsAdvanced ( rItem.bIsAdvanced ) { @@ -231,8 +207,7 @@ bool ScQueryItem::operator==( const SfxPoolItem& rItem ) const const ScQueryItem& rQueryItem = static_cast<const ScQueryItem&>(rItem); - return ( (pViewData == rQueryItem.pViewData) - && (bIsAdvanced == rQueryItem.bIsAdvanced) + return ( (bIsAdvanced == rQueryItem.bIsAdvanced) && (aAdvSource == rQueryItem.aAdvSource) && (*mpQueryData == *rQueryItem.mpQueryData) ); } |