summaryrefslogtreecommitdiff
path: root/sc/source/ui/app
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/ui/app')
-rw-r--r--sc/source/ui/app/inputhdl.cxx28
-rw-r--r--sc/source/ui/app/inputwin.cxx22
-rw-r--r--sc/source/ui/app/msgpool.cxx4
-rw-r--r--sc/source/ui/app/scmod.cxx14
-rw-r--r--sc/source/ui/app/transobj.cxx2
-rw-r--r--sc/source/ui/app/uiitems.cxx35
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) );
}