summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenry Castro <hcastro@collabora.com>2017-11-16 22:13:27 -0400
committerHenry Castro <hcastro@collabora.com>2017-11-17 19:09:11 +0100
commit44badb1175dbe7906aec993e8f2cc90c81ae71fd (patch)
treec0cefe31ef3d4f25c00c82b11024e3a1e77c06fd
parent95d9f596336ebf19dc367f618b3788a4ce0ba542 (diff)
sd: enable language status bar item
Change-Id: I7cb725cdcfc92366694fc8cb24c1443dd74d102e Reviewed-on: https://gerrit.libreoffice.org/44851 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Henry Castro <hcastro@collabora.com>
-rw-r--r--sd/qa/unit/tiledrendering/tiledrendering.cxx4
-rw-r--r--sd/source/ui/docshell/docshel3.cxx3
-rw-r--r--sd/source/ui/docshell/docshell.cxx54
-rw-r--r--sd/source/ui/view/ViewShellBase.cxx15
-rw-r--r--sd/uiconfig/simpress/statusbar/statusbar.xml1
5 files changed, 41 insertions, 36 deletions
diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx
index 9622946a4743..b4110b79a4aa 100644
--- a/sd/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx
@@ -1856,8 +1856,8 @@ void SdTiledRenderingTest::testLanguageStatus()
std::unique_ptr<SfxPoolItem> pItem2;
pView1->GetViewFrame()->GetBindings().QueryState(SID_LANGUAGE_STATUS, pItem1);
pView2->GetViewFrame()->GetBindings().QueryState(SID_LANGUAGE_STATUS, pItem2);
- CPPUNIT_ASSERT(dynamic_cast< const SfxStringListItem* >(pItem1.get()));
- CPPUNIT_ASSERT(dynamic_cast< const SfxStringListItem* >(pItem2.get()));
+ CPPUNIT_ASSERT(dynamic_cast< const SfxStringItem* >(pItem1.get()));
+ CPPUNIT_ASSERT(dynamic_cast< const SfxStringItem* >(pItem2.get()));
}
comphelper::LibreOfficeKit::setActive(false);
diff --git a/sd/source/ui/docshell/docshel3.cxx b/sd/source/ui/docshell/docshel3.cxx
index ab1cb41a1668..b7e1c5b33feb 100644
--- a/sd/source/ui/docshell/docshel3.cxx
+++ b/sd/source/ui/docshell/docshel3.cxx
@@ -314,8 +314,6 @@ void DrawDocShell::Execute( SfxRequest& rReq )
else
lcl_setLanguage( pDoc, aNewLangTxt );
- mpViewShell->GetFrame()->GetBindings().Invalidate( SID_LANGUAGE_STATUS );
-
if ( pDoc->GetOnlineSpell() )
{
pDoc->StartOnlineSpelling();
@@ -323,6 +321,7 @@ void DrawDocShell::Execute( SfxRequest& rReq )
}
}
}
+ Broadcast(SfxHint(SfxHintId::LanguageChanged));
}
break;
diff --git a/sd/source/ui/docshell/docshell.cxx b/sd/source/ui/docshell/docshell.cxx
index 94a66e9bb18d..967f22552eaa 100644
--- a/sd/source/ui/docshell/docshell.cxx
+++ b/sd/source/ui/docshell/docshell.cxx
@@ -275,47 +275,37 @@ void DrawDocShell::GetState(SfxItemSet &rSet)
break;
case SID_LANGUAGE_STATUS:
{
- if ( comphelper::LibreOfficeKit::isActive() )
+ SdrObject* pObj = nullptr;
+ bool bLanguageFound = false;
+ OutlinerParaObject* pParaObj = nullptr;
+ LanguageType eLanguage( LANGUAGE_DONTKNOW );
+ sal_uInt16 nCount = mpDoc->GetPageCount();
+ for ( sal_uInt16 itPage = 0; itPage < nCount && !bLanguageFound; itPage++ )
{
- SdrObject* pObj = nullptr;
- bool bLanguageFound = false;
- OutlinerParaObject* pParaObj = nullptr;
- LanguageType eLanguage( LANGUAGE_DONTKNOW );
- sal_uInt16 nCount = mpDoc->GetPageCount();
- for ( sal_uInt16 itPage = 0; itPage < nCount && !bLanguageFound; itPage++ )
+ SdrObjListIter aListIter(*mpDoc->GetPage(itPage), SdrIterMode::DeepWithGroups);
+ while ( aListIter.IsMore() && !bLanguageFound )
{
- SdrObjListIter aListIter(*mpDoc->GetPage(itPage), SdrIterMode::DeepWithGroups);
- while ( aListIter.IsMore() && !bLanguageFound )
+ pObj = aListIter.Next();
+ if ( pObj )
{
- pObj = aListIter.Next();
- if ( pObj )
+ pParaObj = pObj->GetOutlinerParaObject();
+ if ( pParaObj )
{
- pParaObj = pObj->GetOutlinerParaObject();
- if ( pParaObj )
- {
- SdrOutliner aOutliner(&mpDoc->GetPool(), OutlinerMode::TextObject);
- aOutliner.SetText(*pParaObj);
- eLanguage = aOutliner.GetLanguage(0, 0);
- bLanguageFound = eLanguage != LANGUAGE_DONTKNOW;
- }
+ SdrOutliner aOutliner(&mpDoc->GetPool(), OutlinerMode::TextObject);
+ aOutliner.SetText(*pParaObj);
+ eLanguage = aOutliner.GetLanguage(0, 0);
+ bLanguageFound = eLanguage != LANGUAGE_DONTKNOW;
}
}
}
+ }
- if ( eLanguage == LANGUAGE_DONTKNOW )
- {
- eLanguage = mpDoc->GetLanguage( EE_CHAR_LANGUAGE );
- }
-
- css::uno::Sequence< OUString > aSeq( 1 );
- aSeq[0] = SvtLanguageTable::GetLanguageString(eLanguage);
- SfxStringListItem aItem( SID_LANGUAGE_STATUS );
- aItem.SetStringList( aSeq );
- rSet.Put(aItem);
+ if ( eLanguage == LANGUAGE_DONTKNOW )
+ {
+ eLanguage = mpDoc->GetLanguage( EE_CHAR_LANGUAGE );
}
- else
- // Keeping this enabled for the time being
- rSet.Put(SfxVisibilityItem(nWhich, true));
+
+ rSet.Put(SfxStringItem(nWhich, SvtLanguageTable::GetLanguageString(eLanguage)));
}
break;
diff --git a/sd/source/ui/view/ViewShellBase.cxx b/sd/source/ui/view/ViewShellBase.cxx
index f7d7a02538bf..3dbd3503b13a 100644
--- a/sd/source/ui/view/ViewShellBase.cxx
+++ b/sd/source/ui/view/ViewShellBase.cxx
@@ -429,6 +429,21 @@ void ViewShellBase::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
break;
}
}
+ else
+ {
+ const SfxHintId nSlot = rHint.GetId();
+ switch ( nSlot )
+ {
+ case SfxHintId::LanguageChanged:
+ {
+ GetViewFrame()->GetBindings().Invalidate(SID_LANGUAGE_STATUS);
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
}
void ViewShellBase::InitializeFramework()
diff --git a/sd/uiconfig/simpress/statusbar/statusbar.xml b/sd/uiconfig/simpress/statusbar/statusbar.xml
index f7493de6fa74..6d0ba163f474 100644
--- a/sd/uiconfig/simpress/statusbar/statusbar.xml
+++ b/sd/uiconfig/simpress/statusbar/statusbar.xml
@@ -24,6 +24,7 @@
<statusbar:statusbaritem xlink:href=".uno:Size" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="400"/>
<statusbar:statusbaritem xlink:href=".uno:ModifiedStatus" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="9"/>
<statusbar:statusbaritem xlink:href=".uno:Signature" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="16"/>
+ <statusbar:statusbaritem xlink:href=".uno:LanguageStatus" statusbar:align="center" statusbar:autosize="true" statusbar:width="100"/>
<statusbar:statusbaritem xlink:href=".uno:ZoomPage" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="9"/>
<statusbar:statusbaritem xlink:href=".uno:ZoomSlider" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="130"/>
<statusbar:statusbaritem xlink:href=".uno:Zoom" statusbar:align="center" statusbar:width="36"/>