qadevOOo/runner/util/ValueChanger.java | 12 +++++--- starmath/sdi/smath.sdi | 25 +++++++++++++++++ starmath/sdi/smslots.sdi | 4 ++ starmath/source/view.cxx | 47 +++++++++++++++++++++++++++++++++ 4 files changed, 84 insertions(+), 4 deletions(-)
New commits: commit 6212c467156e2bd4580a9f8145124223d3135ea4 Author: Justin Luth <justin_l...@sil.org> Date: Tue Oct 13 16:42:16 2015 +0300 tdf#73691 - add alt-x support to math At the request of bug tdf#94957, adding unicode conversion shortcut (alt+x) to Math also. Change-Id: I5b4d17543a819f035ade0d9a516eeef8542a286e Reviewed-on: https://gerrit.libreoffice.org/19323 Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> Tested-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> diff --git a/starmath/sdi/smath.sdi b/starmath/sdi/smath.sdi index bbf5a6b..29d4c60 100644 --- a/starmath/sdi/smath.sdi +++ b/starmath/sdi/smath.sdi @@ -800,6 +800,31 @@ SfxStringItem TextStatus SID_TEXTSTATUS ] +SfxVoidItem UnicodeNotationToggle SID_UNICODE_NOTATION_TOGGLE +() +[ + /* flags: */ + AutoUpdate = FALSE, + Cachable = Cachable, + FastCall = FALSE, + HasCoreId = FALSE, + HasDialog = FALSE, + ReadOnlyDoc = FALSE, + Toggle = FALSE, + Container = FALSE, + RecordAbsolute = FALSE, + RecordPerSet; + Synchron; + + /* config: */ + AccelConfig = TRUE, + MenuConfig = FALSE, + StatusBarConfig = FALSE, + ToolBoxConfig = FALSE, + GroupId = GID_OPTIONS; +] + + SfxVoidItem ToolBoxWindow SID_TOOLBOXWINDOW () [ diff --git a/starmath/sdi/smslots.sdi b/starmath/sdi/smslots.sdi index a43eb7c..d00382d 100644 --- a/starmath/sdi/smslots.sdi +++ b/starmath/sdi/smslots.sdi @@ -291,6 +291,10 @@ interface FormulaView ExecMethod = Execute ; StateMethod = GetState ; ] + SID_UNICODE_NOTATION_TOGGLE + [ + ExecMethod = Execute; + ] //idlpp kein Menueeintrag , also keine Texte SID_TOOLBOXWINDOW //idlpp ole : no , status : no [ diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx index ad512b1..07cfe8c 100644 --- a/starmath/source/view.cxx +++ b/starmath/source/view.cxx @@ -29,6 +29,7 @@ #include <comphelper/processfactory.hxx> #include <comphelper/storagehelper.hxx> #include <comphelper/string.hxx> +#include <i18nutil/unicode.hxx> #include <sfx2/app.hxx> #include <sfx2/dispatch.hxx> #include <sfx2/docfile.hxx> @@ -52,6 +53,7 @@ #include <svx/dialogs.hrc> #include <svx/zoomslideritem.hxx> #include <editeng/editeng.hxx> +#include <editeng/editview.hxx> #include <svx/svxdlg.hxx> #include <sfx2/zoomitem.hxx> #include <vcl/decoview.hxx> @@ -1844,6 +1846,51 @@ void SmViewShell::Execute(SfxRequest& rReq) } break; + case SID_UNICODE_NOTATION_TOGGLE: + { + EditEngine* pEditEngine = 0; + if( pWin ) + pEditEngine = pWin->GetEditEngine(); + + EditView* pEditView = 0; + if( pEditEngine ) + pEditView = pEditEngine->GetView(); + + if( pEditView ) + { + const OUString sInput = pEditView->GetSurroundingText(); + ESelection aSel( pWin->GetSelection() ); + + if ( aSel.nStartPos > aSel.nEndPos ) + aSel.nEndPos = aSel.nStartPos; + + //calculate a valid end-position by reading logical characters + sal_Int32 nUtf16Pos=0; + while( (nUtf16Pos < sInput.getLength()) && (nUtf16Pos < aSel.nEndPos) ) + { + sInput.iterateCodePoints(&nUtf16Pos); + if( nUtf16Pos > aSel.nEndPos ) + aSel.nEndPos = nUtf16Pos; + } + + ToggleUnicodeCodepoint aToggle; + while( nUtf16Pos && aToggle.AllowMoreInput( sInput[nUtf16Pos-1]) ) + --nUtf16Pos; + const OUString sReplacement = aToggle.ReplacementString(); + if( !sReplacement.isEmpty() ) + { + pEditView->SetSelection( aSel ); + pEditEngine->UndoActionStart(EDITUNDO_REPLACEALL); + aSel.nStartPos = aSel.nEndPos - aToggle.StringToReplace().getLength(); + pWin->SetSelection( aSel ); + pEditView->InsertText( sReplacement, true ); + pEditEngine->UndoActionEnd(EDITUNDO_REPLACEALL); + pWin->Flush(); + } + } + } + break; + case SID_SYMBOLS_CATALOGUE: { commit d3465703c9d6f7a6277398337a5e9df3a8df0d19 Author: Stephan Bergmann <sberg...@redhat.com> Date: Thu Oct 15 15:35:56 2015 +0200 com.sun.star.lang.Locale does not override Object.equals Change-Id: I4a443ce900252b171bd028e945971818fb2cc7ef diff --git a/qadevOOo/runner/util/ValueChanger.java b/qadevOOo/runner/util/ValueChanger.java index df54d5b..4afac0a 100644 --- a/qadevOOo/runner/util/ValueChanger.java +++ b/qadevOOo/runner/util/ValueChanger.java @@ -107,10 +107,14 @@ public class ValueChanger { else newValue = OR1; } else if (oldValue instanceof com.sun.star.lang.Locale) { - Object Loc1 = new com.sun.star.lang.Locale("en", "US", ""); - Object Loc2 = new com.sun.star.lang.Locale("de", "DE", ""); - - if (oldValue.equals(Loc1)) + com.sun.star.lang.Locale Loc1 = new com.sun.star.lang.Locale( + "en", "US", ""); + com.sun.star.lang.Locale Loc2 = new com.sun.star.lang.Locale( + "de", "DE", ""); + com.sun.star.lang.Locale old = (com.sun.star.lang.Locale) oldValue; + if (old.Language.equals(Loc1.Language) + && old.Country.equals(Loc1.Country) + && old.Variant.equals(Loc1.Variant)) newValue = Loc2; else newValue = Loc1; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits