Files
libreoffice/cui/source/dialogs/SpellDialog.cxx

2083 lines
76 KiB
C++
Raw Normal View History

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
re-base on ALv2 code. Includes: clarify Option->Language UI option Patch contributed by Herbert Duerr http://svn.apache.org/viewvc?view=revision&revision=1173991 cws mba34issues01: #i117712#: fix several resource errors introduced by IAccessible2 implementation Patch contributed by Mathias Bauer http://svn.apache.org/viewvc?view=revision&revision=1173991 cws mba34issues01: #i117709#: add missing string resource Patch contributed by Mathias Bauer http://svn.apache.org/viewvc?view=revision&revision=1172348 cws mba34issues01: #i117716#: fix missing resources my removing unused code Patch contributed by Mathias Bauer http://svn.apache.org/viewvc?view=revision&revision=1172345 re-add Crystal, Tango, Oxygen icon theme listings. correct method signature Patch contributed by Jean-Louis 'Hans' Fuchs http://svn.apache.org/viewvc?view=revision&revision=1306725 i#119063 - correct serf integration Patch contributed by Oliver-Rainer Wittmann http://svn.apache.org/viewvc?view=revision&revision=1300521 i#119036 - adapt serf integration -- use transfer-encoding 'chunked' on HTTPS -- switch transfer-encoding between 'chunked' and none on 413 HTTP status code -- refactoring -- improve user experience of certification dialog - only shown once Patch contributed by Oliver-Rainer Wittmann http://svn.apache.org/viewvc?view=revision&revision=1299727 118569: Use whole certification chain for verification. Patch contributed by Andre Fischer http://svn.apache.org/viewvc?view=revision&revision=1295493 serf integration: improve credential input handling Patch contributed by Oliver-Rainer Wittmann http://svn.apache.org/viewvc?view=revision&revision=1294557 warning-free ucb/source/ucp/webdav Patch contributed by Pavel Janik http://svn.apache.org/viewvc?view=revision&revision=1294086 some refactoring to PROPPATCH and PROPFIND requests Patch contributed by Oliver-Rainer Wittmann http://svn.apache.org/viewvc?view=revision&revision=1293281 i#118569: Replace neon with serf Patch contributed by Oliver-Rainer Wittmann http://svn.apache.org/viewvc?view=revision&revision=1292832 http://svn.apache.org/viewvc?view=revision&revision=1292794 remove OS/2 conditionals for now. re-enable webdav unit tests.
2012-10-04 11:25:41 +01:00
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
2009-10-31 00:36:06 +01:00
#include <vcl/wrkwin.hxx>
#include <vcl/menu.hxx>
#include <vcl/layout.hxx>
2009-10-31 00:36:06 +01:00
#include <vcl/scrbar.hxx>
#include <vcl/settings.hxx>
2009-10-31 00:36:06 +01:00
#include <SpellAttrib.hxx>
#include <sfx2/dispatch.hxx>
#include <sfx2/bindings.hxx>
#include <svl/undo.hxx>
#include <unotools/lingucfg.hxx>
#include <vcl/textdata.hxx>
#include <vcl/graphicfilter.hxx>
#include <editeng/unolingu.hxx>
#include <editeng/splwrap.hxx>
2009-10-31 00:36:06 +01:00
#include <linguistic/lngprops.hxx>
#include <linguistic/misc.hxx>
#include <comphelper/processfactory.hxx>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XServiceDisplayName.hpp>
#include <com/sun/star/linguistic2/SpellFailure.hpp>
#include <com/sun/star/frame/XStorable.hpp>
#include <com/sun/star/system/SystemShellExecuteFlags.hpp>
#include <com/sun/star/system/SystemShellExecute.hpp>
2009-10-31 00:36:06 +01:00
#include <sfx2/app.hxx>
#include <vcl/help.hxx>
#include <vcl/graph.hxx>
#include <vcl/builderfactory.hxx>
2009-10-31 00:36:06 +01:00
#include <osl/file.hxx>
#include <cuires.hrc>
2010-01-13 22:25:07 +01:00
#include <editeng/optitems.hxx>
#include <editeng/svxenum.hxx>
2009-10-31 00:36:06 +01:00
#include <svx/SpellDialogChildWindow.hxx>
#include "SpellDialog.hxx"
#include <svx/dlgutil.hxx>
#include "optlingu.hxx"
#include <dialmgr.hxx>
2009-10-31 00:36:06 +01:00
#include <svx/svxerr.hxx>
#include "treeopt.hxx"
#include <svtools/langtab.hxx>
#include <comphelper/anytostring.hxx>
#include <cppuhelper/exc_hlp.hxx>
2009-10-31 00:36:06 +01:00
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::linguistic2;
using namespace linguistic;
2009-10-31 00:36:06 +01:00
2009-10-31 00:36:06 +01:00
// struct SpellDialog_Impl ---------------------------------------------
struct SpellDialog_Impl
{
Sequence< Reference< XDictionary > > aDics;
};
2009-10-31 00:36:06 +01:00
#define SPELLUNDO_START 200
#define SPELLUNDO_CHANGE_LANGUAGE (SPELLUNDO_START + 1)
#define SPELLUNDO_CHANGE_TEXTENGINE (SPELLUNDO_START + 2)
#define SPELLUNDO_CHANGE_NEXTERROR (SPELLUNDO_START + 3)
#define SPELLUNDO_CHANGE_ADD_TO_DICTIONARY (SPELLUNDO_START + 4)
#define SPELLUNDO_CHANGE_GROUP (SPELLUNDO_START + 5) //undo list
#define SPELLUNDO_MOVE_ERROREND (SPELLUNDO_START + 6)
#define SPELLUNDO_UNDO_EDIT_MODE (SPELLUNDO_START + 7)
#define SPELLUNDO_ADD_IGNORE_RULE (SPELLUNDO_START + 8)
2009-10-31 00:36:06 +01:00
namespace svx{
class SpellUndoAction_Impl : public SfxUndoAction
{
sal_uInt16 m_nId;
const Link<SpellUndoAction_Impl&,void>& m_rActionLink;
2009-10-31 00:36:06 +01:00
//undo of button enabling
bool m_bEnableChangePB;
bool m_bEnableChangeAllPB;
//undo of MarkNextError - used in change and change all, ignore and ignore all
long m_nNewErrorStart;
long m_nNewErrorEnd;
long m_nOldErrorStart;
long m_nOldErrorEnd;
bool m_bIsErrorLanguageSelected;
//undo of AddToDictionary
Reference<XDictionary> m_xDictionary;
OUString m_sAddedWord;
2009-10-31 00:36:06 +01:00
//move end of error - ::ChangeMarkedWord()
long m_nOffset;
public:
SpellUndoAction_Impl(sal_uInt16 nId, const Link<SpellUndoAction_Impl&,void>& rActionLink) :
2009-10-31 00:36:06 +01:00
m_nId(nId),
m_rActionLink( rActionLink),
m_bEnableChangePB(false),
m_bEnableChangeAllPB(false),
m_nNewErrorStart(-1),
m_nNewErrorEnd(-1),
m_nOldErrorStart(-1),
m_nOldErrorEnd(-1),
m_bIsErrorLanguageSelected(false),
m_nOffset(0)
{}
virtual ~SpellUndoAction_Impl();
2009-10-31 00:36:06 +01:00
virtual void Undo() override;
virtual sal_uInt16 GetId() const override;
2009-10-31 00:36:06 +01:00
void SetEnableChangePB(){m_bEnableChangePB = true;}
bool IsEnableChangePB(){return m_bEnableChangePB;}
void SetEnableChangeAllPB(){m_bEnableChangeAllPB = true;}
bool IsEnableChangeAllPB(){return m_bEnableChangeAllPB;}
void SetErrorMove(long nNewStart, long nNewEnd, long nOldStart, long nOldEnd)
{
m_nNewErrorStart = nNewStart;
m_nNewErrorEnd = nNewEnd;
m_nOldErrorStart = nOldStart;
m_nOldErrorEnd = nOldEnd;
}
long GetOldErrorStart() { return m_nOldErrorStart;}
long GetOldErrorEnd() { return m_nOldErrorEnd;}
void SetErrorLanguageSelected(bool bSet){ m_bIsErrorLanguageSelected = bSet;}
bool IsErrorLanguageSelected() const {return m_bIsErrorLanguageSelected;}
void SetDictionary(const Reference<XDictionary>& xDict) { m_xDictionary = xDict; }
const Reference<XDictionary>& GetDictionary() const { return m_xDictionary; }
void SetAddedWord(const OUString& rWord) {m_sAddedWord = rWord;}
const OUString& GetAddedWord() const { return m_sAddedWord;}
2009-10-31 00:36:06 +01:00
void SetOffset(long nSet) {m_nOffset = nSet;}
long GetOffset() const {return m_nOffset;}
};
}//namespace svx
using namespace ::svx;
2009-10-31 00:36:06 +01:00
SpellUndoAction_Impl::~SpellUndoAction_Impl()
{
}
2009-10-31 00:36:06 +01:00
void SpellUndoAction_Impl::Undo()
{
m_rActionLink.Call(*this);
2009-10-31 00:36:06 +01:00
}
sal_uInt16 SpellUndoAction_Impl::GetId()const
2009-10-31 00:36:06 +01:00
{
return m_nId;
}
// class SvxSpellCheckDialog ---------------------------------------------
SpellDialog::SpellDialog(SpellDialogChildWindow* pChildWindow,
vcl::Window * pParent, SfxBindings* _pBindings)
: SfxModelessDialog (_pBindings, pChildWindow,
pParent, "SpellingDialog", "cui/ui/spellingdialog.ui")
, aDialogUndoLink(LINK (this, SpellDialog, DialogUndoHdl))
, bModified(false)
, bFocusLocked(true)
, rParent(*pChildWindow)
{
m_sTitleSpellingGrammar = GetText();
m_sTitleSpelling = get<FixedText>("alttitleft")->GetText();
// fdo#68794 set initial title for cases where no text has been processed
// yet to show its language attributes
OUString sTitle = rParent.HasGrammarChecking() ? m_sTitleSpellingGrammar : m_sTitleSpelling;
SetText(sTitle.replaceFirst("$LANGUAGE ($LOCATION)", ""));
m_sResumeST = get<FixedText>("resumeft")->GetText();
m_sNoSuggestionsST = get<FixedText>("nosuggestionsft")->GetText();
get(m_pLanguageFT, "languageft");
get(m_pLanguageLB, "languagelb");
get(m_pExplainFT, "explain");
get(m_pExplainLink, "explainlink");
get(m_pNotInDictFT, "notindictft");
get(m_pSentenceED, "sentence");
Size aEdSize(LogicToPixel(Size(197, 48), MAP_APPFONT));
m_pSentenceED->set_width_request(aEdSize.Width());
m_pSentenceED->set_height_request(aEdSize.Height());
get(m_pSuggestionFT, "suggestionsft");
get(m_pSuggestionLB, "suggestionslb");
m_pSuggestionLB->SetDropDownLineCount(5);
m_pSuggestionLB->set_width_request(aEdSize.Width());
get(m_pIgnorePB, "ignore");
m_sIgnoreOnceST = m_pIgnorePB->GetText();
get(m_pIgnoreAllPB, "ignoreall");
get(m_pIgnoreRulePB, "ignorerule");
get(m_pAddToDictPB, "add");
get(m_pAddToDictMB, "addmb");
m_pAddToDictMB->SetHelpId(m_pAddToDictPB->GetHelpId());
get(m_pChangePB, "change");
get(m_pChangeAllPB, "changeall");
get(m_pAutoCorrPB, "autocorrect");
get(m_pCheckGrammarCB, "checkgrammar");
get(m_pOptionsPB, "options");
get(m_pUndoPB, "undo");
get(m_pClosePB, "close");
get(m_pToolbar, "toolbar");
m_pSentenceED->Init(m_pToolbar);
2009-10-31 00:36:06 +01:00
xSpell = LinguMgr::GetSpellChecker();
pImpl = new SpellDialog_Impl;
const StyleSettings& rSettings = GetSettings().GetStyleSettings();
Color aCol = rSettings.GetHelpColor();
Wallpaper aWall( aCol );
m_pExplainLink->SetBackground( aWall );
m_pExplainFT->SetBackground( aWall );
2009-10-31 00:36:06 +01:00
Init_Impl();
// disable controls if service is missing
Enable(xSpell.is());
2009-10-31 00:36:06 +01:00
//InitHdl wants to use virtual methods, so it
//can't be called during the ctor, so init
//it on next event cycle post-ctor
Application::PostUserEvent(
LINK( this, SpellDialog, InitHdl ), nullptr, true );
2009-10-31 00:36:06 +01:00
}
SpellDialog::~SpellDialog()
{
disposeOnce();
2009-10-31 00:36:06 +01:00
}
void SpellDialog::dispose()
2009-10-31 00:36:06 +01:00
{
if (pImpl)
2009-10-31 00:36:06 +01:00
{
// save possibly modified user-dictionaries
Reference< XSearchableDictionaryList > xDicList( SvxGetDictionaryList() );
if (xDicList.is())
SaveDictionaries( xDicList );
delete pImpl;
pImpl = nullptr;
}
vclwidget: change all vcl::window fields to be wrapped in VclPtr and update the VclWidget clang plugin to - warn about unconverted fields - .clear() all VclPtr fields in dispose() methods Change-Id: I6e657c215bc6807efd992555399b3b1fc16c89b5 2 1 accessibility/inc/accessibility/extended/accessibleiconchoicectrlentry.hxx 2 1 accessibility/inc/accessibility/extended/accessibletabbarbase.hxx 1 1 accessibility/inc/accessibility/extended/accessibletablistbox.hxx 1 1 accessibility/inc/accessibility/extended/accessibletablistboxtable.hxx 3 2 accessibility/inc/accessibility/extended/listboxaccessible.hxx 1 1 accessibility/inc/accessibility/extended/textwindowaccessibility.hxx 2 1 accessibility/inc/accessibility/standard/vclxaccessiblemenubar.hxx 2 1 accessibility/inc/accessibility/standard/vclxaccessiblestatusbar.hxx 4 4 accessibility/inc/accessibility/standard/vclxaccessiblestatusbaritem.hxx 2 1 accessibility/inc/accessibility/standard/vclxaccessibletabcontrol.hxx 2 1 accessibility/inc/accessibility/standard/vclxaccessibletabpage.hxx 3 2 accessibility/inc/accessibility/standard/vclxaccessibletabpagewindow.hxx 7 6 accessibility/inc/accessibility/standard/vclxaccessibletoolboxitem.hxx 3 3 accessibility/source/extended/AccessibleToolPanelDeck.cxx 2 2 accessibility/source/extended/AccessibleToolPanelDeckTabBar.cxx 2 2 accessibility/source/extended/AccessibleToolPanelDeckTabBarItem.cxx 1 1 accessibility/source/extended/accessibleiconchoicectrlentry.cxx 3 3 accessibility/source/extended/textwindowaccessibility.cxx 3 3 accessibility/source/standard/vclxaccessibleradiobutton.cxx 1 1 accessibility/source/standard/vclxaccessibletabpagewindow.cxx 1 1 avmedia/inc/mediacontrol.hxx 1 2 avmedia/source/framework/mediacontrol.cxx 1 1 avmedia/source/framework/mediaplayer.cxx 7 7 avmedia/source/viewer/mediaevent_impl.cxx 2 1 avmedia/source/viewer/mediaevent_impl.hxx 1 2 avmedia/source/viewer/mediawindow_impl.cxx 1 1 avmedia/source/viewer/mediawindow_impl.hxx 1 1 basctl/source/basicide/basicrenderable.hxx 1 0 basctl/source/basicide/baside2.cxx 7 5 basctl/source/basicide/baside2.hxx 13 2 basctl/source/basicide/baside2b.cxx 3 3 basctl/source/basicide/baside3.cxx 14 14 basctl/source/basicide/basides1.cxx 4 4 basctl/source/basicide/basides2.cxx 2 2 basctl/source/basicide/basides3.cxx 6 6 basctl/source/basicide/basidesh.cxx 14 1 basctl/source/basicide/bastypes.cxx 15 0 basctl/source/basicide/brkdlg.cxx 8 6 basctl/source/basicide/brkdlg.hxx 11 0 basctl/source/basicide/layout.cxx 5 2 basctl/source/basicide/layout.hxx 11 0 basctl/source/basicide/linenumberwindow.cxx 3 1 basctl/source/basicide/linenumberwindow.hxx 14 0 basctl/source/basicide/macrodlg.cxx 15 15 basctl/source/basicide/macrodlg.hxx 45 1 basctl/source/basicide/moduldl2.cxx 32 1 basctl/source/basicide/moduldlg.cxx 36 26 basctl/source/basicide/moduldlg.hxx 20 0 basctl/source/dlged/managelang.cxx 2 1 basctl/source/inc/accessibledialogcontrolshape.hxx 2 1 basctl/source/inc/accessibledialogwindow.hxx 2 2 basctl/source/inc/baside3.hxx 4 4 basctl/source/inc/basidesh.hxx 5 4 basctl/source/inc/bastypes.hxx 3 2 basctl/source/inc/dlged.hxx 12 10 basctl/source/inc/managelang.hxx 1 1 chart2/inc/ChartModel.hxx 2 1 chart2/source/controller/accessibility/AccessibleViewForwarder.hxx 2 2 chart2/source/controller/dialogs/ChartTypeDialogController.hxx 1 2 chart2/source/controller/dialogs/dlg_ChartType.cxx 2 10 chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx 1 0 chart2/source/controller/dialogs/dlg_DataEditor.cxx 4 6 chart2/source/controller/dialogs/dlg_DataSource.cxx 17 0 chart2/source/controller/dialogs/dlg_InsertAxis_Grid.cxx 6 8 chart2/source/controller/dialogs/dlg_View3D.cxx 2 2 chart2/source/controller/dialogs/res_BarGeometry.hxx 19 19 chart2/source/controller/dialogs/res_DataLabel.hxx 23 23 chart2/source/controller/dialogs/res_Trendline.hxx 14 0 chart2/source/controller/dialogs/tp_3D_SceneAppearance.cxx 6 4 chart2/source/controller/dialogs/tp_3D_SceneAppearance.hxx 18 0 chart2/source/controller/dialogs/tp_3D_SceneGeometry.cxx 9 7 chart2/source/controller/dialogs/tp_3D_SceneGeometry.hxx 14 1 chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx 16 16 chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx 17 0 chart2/source/controller/dialogs/tp_AxisLabel.cxx 17 17 chart2/source/controller/dialogs/tp_AxisLabel.hxx 24 0 chart2/source/controller/dialogs/tp_AxisPositions.cxx 20 18 chart2/source/controller/dialogs/tp_AxisPositions.hxx 44 19 chart2/source/controller/dialogs/tp_ChartType.cxx 3 3 chart2/source/controller/dialogs/tp_ChartType.hxx 28 0 chart2/source/controller/dialogs/tp_DataSource.cxx 22 20 chart2/source/controller/dialogs/tp_DataSource.hxx 12 0 chart2/source/controller/dialogs/tp_LegendPosition.cxx 3 1 chart2/source/controller/dialogs/tp_LegendPosition.hxx 16 0 chart2/source/controller/dialogs/tp_PolarOptions.cxx 8 6 chart2/source/controller/dialogs/tp_PolarOptions.hxx 24 0 chart2/source/controller/dialogs/tp_RangeChooser.cxx 15 13 chart2/source/controller/dialogs/tp_RangeChooser.hxx 35 0 chart2/source/controller/dialogs/tp_Scale.cxx 34 32 chart2/source/controller/dialogs/tp_Scale.hxx 24 0 chart2/source/controller/dialogs/tp_SeriesToAxis.cxx 19 17 chart2/source/controller/dialogs/tp_SeriesToAxis.hxx 7 0 chart2/source/controller/dialogs/tp_TitleRotation.cxx 7 7 chart2/source/controller/dialogs/tp_TitleRotation.hxx 13 0 chart2/source/controller/dialogs/tp_Wizard_TitlesAndObjects.cxx 5 3 chart2/source/controller/dialogs/tp_Wizard_TitlesAndObjects.hxx 1 1 chart2/source/controller/inc/dlg_ChartType.hxx 1 1 chart2/source/controller/inc/dlg_CreationWizard_UNO.hxx 1 1 chart2/source/controller/inc/dlg_DataEditor.hxx 4 4 chart2/source/controller/inc/dlg_DataSource.hxx 8 6 chart2/source/controller/inc/dlg_InsertAxis_Grid.hxx 4 4 chart2/source/controller/inc/dlg_View3D.hxx 27 27 chart2/source/controller/inc/res_ErrorBar.hxx 5 5 chart2/source/controller/inc/res_LegendPosition.hxx 14 14 chart2/source/controller/inc/res_Titles.hxx 1 1 chart2/source/controller/main/ChartController.hxx 2 3 chart2/source/controller/main/ChartWindow.cxx 1 1 chart2/source/controller/main/ChartWindow.hxx 6 6 chart2/source/controller/main/ShapeController.cxx 1 1 chart2/source/view/charttypes/GL3DBarChart.cxx 1 1 chart2/source/view/inc/GL3DBarChart.hxx 1 1 chart2/source/view/main/ChartView.cxx 155 50 compilerplugins/clang/vclwidgets.cxx 23 0 cui/source/customize/acccfg.cxx 95 20 cui/source/customize/cfg.cxx 1 0 cui/source/customize/cfgutil.cxx 1 0 cui/source/customize/eventdlg.cxx 1 1 cui/source/customize/eventdlg.hxx 12 0 cui/source/customize/macropg.cxx 8 6 cui/source/customize/macropg_impl.hxx 17 0 cui/source/customize/selector.cxx 20 0 cui/source/dialogs/SpellDialog.cxx 17 0 cui/source/dialogs/about.cxx 56 26 cui/source/dialogs/colorpicker.cxx 19 0 cui/source/dialogs/cuicharmap.cxx 29 1 cui/source/dialogs/cuifmsearch.cxx 84 2 cui/source/dialogs/cuigaldlg.cxx 72 0 cui/source/dialogs/cuigrfflt.cxx 15 0 cui/source/dialogs/cuiimapwnd.cxx 11 0 cui/source/dialogs/cuitbxform.cxx 41 0 cui/source/dialogs/dlgname.cxx 79 5 cui/source/dialogs/hangulhanjadlg.cxx 5 0 cui/source/dialogs/hldocntp.cxx 15 0 cui/source/dialogs/hldoctp.cxx 20 1 cui/source/dialogs/hlinettp.cxx 14 0 cui/source/dialogs/hlmailtp.cxx 15 0 cui/source/dialogs/hlmarkwn.cxx 9 5 cui/source/dialogs/hltpbase.cxx 18 0 cui/source/dialogs/hyphen.cxx 18 2 cui/source/dialogs/iconcdlg.cxx 45 0 cui/source/dialogs/insdlg.cxx 13 0 cui/source/dialogs/insrc.cxx 20 0 cui/source/dialogs/linkdlg.cxx 13 8 cui/source/dialogs/multipat.cxx 12 0 cui/source/dialogs/newtabledlg.cxx 9 9 cui/source/dialogs/passwdomdlg.cxx 13 0 cui/source/dialogs/pastedlg.cxx 7 0 cui/source/dialogs/postdlg.cxx 18 0 cui/source/dialogs/scriptdlg.cxx 11 0 cui/source/dialogs/showcols.cxx 14 0 cui/source/dialogs/splitcelldlg.cxx 25 0 cui/source/dialogs/srchxtra.cxx 39 0 cui/source/dialogs/thesdlg.cxx 13 0 cui/source/dialogs/zoom.cxx 29 0 cui/source/factory/cuiexp.cxx 0 2 cui/source/factory/dlgfact.cxx 2 3 cui/source/factory/dlgfact.hxx 3 1 cui/source/inc/ControlFocusHelper.hxx 20 20 cui/source/inc/SpellDialog.hxx 9 7 cui/source/inc/about.hxx 14 12 cui/source/inc/acccfg.hxx 26 26 cui/source/inc/align.hxx 62 52 cui/source/inc/autocdlg.hxx 29 29 cui/source/inc/backgrnd.hxx 34 32 cui/source/inc/border.hxx 44 33 cui/source/inc/cfg.hxx 1 1 cui/source/inc/cfgutil.hxx 95 85 cui/source/inc/chardlg.hxx 14 12 cui/source/inc/connect.hxx 12 10 cui/source/inc/cuicharmap.hxx 27 27 cui/source/inc/cuifmsearch.hxx 41 29 cui/source/inc/cuigaldlg.hxx 24 10 cui/source/inc/cuigrfflt.hxx 1 1 cui/source/inc/cuihyperdlg.hxx 7 5 cui/source/inc/cuiimapwnd.hxx 3 1 cui/source/inc/cuioptgenrl.hxx 3 1 cui/source/inc/cuisrchdlg.hxx 145 135 cui/source/inc/cuitabarea.hxx 57 53 cui/source/inc/cuitabline.hxx 3 1 cui/source/inc/cuitbxform.hxx 5 5 cui/source/inc/dbregister.hxx 17 12 cui/source/inc/dlgname.hxx 15 11 cui/source/inc/dstribut.hxx 21 21 cui/source/inc/grfpage.hxx 49 43 cui/source/inc/hangulhanjadlg.hxx 5 5 cui/source/inc/hldocntp.hxx 7 5 cui/source/inc/hldoctp.hxx 11 9 cui/source/inc/hlinettp.hxx 6 4 cui/source/inc/hlmailtp.hxx 7 5 cui/source/inc/hlmarkwn.hxx 7 7 cui/source/inc/hltpbase.hxx 10 8 cui/source/inc/hyphen.hxx 14 12 cui/source/inc/iconcdlg.hxx 29 25 cui/source/inc/insdlg.hxx 5 3 cui/source/inc/insrc.hxx 12 10 cui/source/inc/labdlg.hxx 12 10 cui/source/inc/linkdlg.hxx 19 17 cui/source/inc/measure.hxx 6 6 cui/source/inc/multipat.hxx 4 2 cui/source/inc/newtabledlg.hxx 30 30 cui/source/inc/numfmt.hxx 64 64 cui/source/inc/numpages.hxx 13 13 cui/source/inc/optasian.hxx 17 13 cui/source/inc/optdict.hxx 18 18 cui/source/inc/optlingu.hxx 4 4 cui/source/inc/optpath.hxx 29 29 cui/source/inc/page.hxx 71 59 cui/source/inc/paragrph.hxx 6 4 cui/source/inc/pastedlg.hxx 7 7 cui/source/inc/postdlg.hxx 11 9 cui/source/inc/scriptdlg.hxx 9 7 cui/source/inc/selector.hxx 4 2 cui/source/inc/showcols.hxx 6 4 cui/source/inc/splitcelldlg.hxx 10 6 cui/source/inc/srchxtra.hxx 28 26 cui/source/inc/swpossizetabpage.hxx 29 27 cui/source/inc/tabstpge.hxx 20 17 cui/source/inc/textanim.hxx 19 16 cui/source/inc/textattr.hxx 15 8 cui/source/inc/thesdlg.hxx 34 28 cui/source/inc/transfrm.hxx 5 5 cui/source/inc/treeopt.hxx 13 13 cui/source/inc/zoom.hxx 4 2 cui/source/options/certpath.cxx 4 4 cui/source/options/certpath.hxx 17 0 cui/source/options/connpooloptions.cxx 10 8 cui/source/options/connpooloptions.hxx 11 0 cui/source/options/cuisrchdlg.cxx 5 2 cui/source/options/dbregister.cxx 14 0 cui/source/options/doclinkdialog.cxx 6 4 cui/source/options/doclinkdialog.hxx 10 2 cui/source/options/fontsubs.cxx 12 12 cui/source/options/fontsubs.hxx 26 0 cui/source/options/optaboutconfig.cxx 10 6 cui/source/options/optaboutconfig.hxx 9 0 cui/source/options/optaccessibility.cxx 9 9 cui/source/options/optaccessibility.hxx 13 0 cui/source/options/optasian.cxx 16 0 cui/source/options/optbasic.cxx 8 6 cui/source/options/optbasic.hxx 5 0 cui/source/options/optchart.cxx 5 5 cui/source/options/optchart.hxx 29 32 cui/source/options/optcolor.cxx 4 4 cui/source/options/optcolor.hxx 16 0 cui/source/options/optctl.cxx 8 6 cui/source/options/optctl.hxx 31 0 cui/source/options/optdict.cxx 21 2 cui/source/options/optfltr.cxx 12 10 cui/source/options/optfltr.hxx 54 0 cui/source/options/optgdlg.cxx 47 45 cui/source/options/optgdlg.hxx 12 2 cui/source/options/optgenrl.cxx 26 0 cui/source/options/opthtml.cxx 18 16 cui/source/options/opthtml.hxx 45 4 cui/source/options/optinet2.cxx 37 35 cui/source/options/optinet2.hxx 29 6 cui/source/options/optjava.cxx 23 21 cui/source/options/optjava.hxx 28 0 cui/source/options/optjsearch.cxx 22 20 cui/source/options/optjsearch.hxx 31 4 cui/source/options/optlingu.cxx 17 0 cui/source/options/optmemory.cxx 9 7 cui/source/options/optmemory.hxx 44 5 cui/source/options/optopencl.cxx 21 20 cui/source/options/optopencl.hxx 4 2 cui/source/options/optpath.cxx 17 0 cui/source/options/optsave.cxx 19 19 cui/source/options/optsave.hxx 19 0 cui/source/options/optupdt.cxx 12 10 cui/source/options/optupdt.hxx 39 0 cui/source/options/personalization.cxx 20 16 cui/source/options/personalization.hxx 18 0 cui/source/options/securityoptions.cxx 10 8 cui/source/options/securityoptions.hxx 11 10 cui/source/options/treeopt.cxx 4 2 cui/source/options/webconninfo.cxx 4 4 cui/source/options/webconninfo.hxx 24 0 cui/source/tabpages/align.cxx 106 7 cui/source/tabpages/autocdlg.cxx 27 0 cui/source/tabpages/backgrnd.cxx 34 0 cui/source/tabpages/border.cxx 115 1 cui/source/tabpages/chardlg.cxx 22 0 cui/source/tabpages/connect.cxx 32 0 cui/source/tabpages/dstribut.cxx 18 0 cui/source/tabpages/grfpage.cxx 20 0 cui/source/tabpages/labdlg.cxx 10 10 cui/source/tabpages/macroass.cxx 25 0 cui/source/tabpages/measure.cxx 25 1 cui/source/tabpages/numfmt.cxx 60 1 cui/source/tabpages/numpages.cxx 29 0 cui/source/tabpages/page.cxx 99 0 cui/source/tabpages/paragrph.cxx 37 0 cui/source/tabpages/swpossizetabpage.cxx 34 1 cui/source/tabpages/tabstpge.cxx 26 0 cui/source/tabpages/textanim.cxx 24 0 cui/source/tabpages/textattr.cxx 72 0 cui/source/tabpages/tparea.cxx 14 1 cui/source/tabpages/tpbitmap.cxx 28 4 cui/source/tabpages/tpcolor.cxx 28 0 cui/source/tabpages/tpgradnt.cxx 21 0 cui/source/tabpages/tphatch.cxx 29 0 cui/source/tabpages/tpline.cxx 25 0 cui/source/tabpages/tplnedef.cxx 18 0 cui/source/tabpages/tplneend.cxx 17 0 cui/source/tabpages/tpshadow.cxx 58 0 cui/source/tabpages/transfrm.cxx 42 0 dbaccess/source/ext/macromigration/macromigrationpages.cxx 20 14 dbaccess/source/ext/macromigration/macromigrationpages.hxx 1 1 dbaccess/source/ext/macromigration/rangeprogressbar.hxx 0 1 dbaccess/source/ui/app/AppDetailPageHelper.cxx 2 1 dbaccess/source/ui/app/AppDetailView.cxx 2 2 dbaccess/source/ui/app/AppDetailView.hxx 1 1 dbaccess/source/ui/app/AppTitleWindow.cxx 1 1 dbaccess/source/ui/app/AppTitleWindow.hxx 4 10 dbaccess/source/ui/app/AppView.cxx 4 4 dbaccess/source/ui/app/AppView.hxx 1 0 dbaccess/source/ui/app/subcomponentmanager.cxx 7 16 dbaccess/source/ui/browser/brwview.cxx 1 2 dbaccess/source/ui/browser/dbtreeview.cxx 1 1 dbaccess/source/ui/browser/dbtreeview.hxx 10 0 dbaccess/source/ui/browser/genericcontroller.cxx 68 41 dbaccess/source/ui/control/FieldDescControl.cxx 2 2 dbaccess/source/ui/control/TableGrantCtrl.cxx 3 1 dbaccess/source/ui/control/VertSplitView.cxx 3 3 dbaccess/source/ui/control/curledit.cxx 1 0 dbaccess/source/ui/control/sqledit.cxx 16 0 dbaccess/source/ui/dlg/CollectionView.cxx 4 8 dbaccess/source/ui/dlg/ConnectionHelper.cxx 4 5 dbaccess/source/ui/dlg/ConnectionHelper.hxx 19 0 dbaccess/source/ui/dlg/ConnectionPage.cxx 13 11 dbaccess/source/ui/dlg/ConnectionPage.hxx 12 0 dbaccess/source/ui/dlg/ConnectionPageSetup.cxx 4 2 dbaccess/source/ui/dlg/ConnectionPageSetup.hxx 113 1 dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx 61 48 dbaccess/source/ui/dlg/DBSetupConnectionPages.hxx 2 1 dbaccess/source/ui/dlg/DbAdminImpl.hxx 13 0 dbaccess/source/ui/dlg/QueryPropertiesDialog.cxx 20 0 dbaccess/source/ui/dlg/RelationDlg.cxx 30 1 dbaccess/source/ui/dlg/TextConnectionHelper.cxx 21 19 dbaccess/source/ui/dlg/TextConnectionHelper.hxx 19 5 dbaccess/source/ui/dlg/UserAdmin.cxx 4 4 dbaccess/source/ui/dlg/UserAdmin.hxx 22 0 dbaccess/source/ui/dlg/admincontrols.cxx 14 13 dbaccess/source/ui/dlg/admincontrols.hxx 1 1 dbaccess/source/ui/dlg/adminpages.hxx 6 0 dbaccess/source/ui/dlg/adtabdlg.cxx 57 31 dbaccess/source/ui/dlg/advancedsettings.cxx 28 28 dbaccess/source/ui/dlg/advancedsettings.hxx 19 0 dbaccess/source/ui/dlg/dbfindex.cxx 11 9 dbaccess/source/ui/dlg/dbfindex.hxx 7 4 dbaccess/source/ui/dlg/dbwizsetup.cxx 86 16 dbaccess/source/ui/dlg/detailpages.cxx 45 35 dbaccess/source/ui/dlg/detailpages.hxx 7 0 dbaccess/source/ui/dlg/directsql.cxx 8 8 dbaccess/source/ui/dlg/dlgsave.cxx 13 0 dbaccess/source/ui/dlg/dlgsize.cxx 14 0 dbaccess/source/ui/dlg/dsselect.cxx 6 5 dbaccess/source/ui/dlg/dsselect.hxx 30 0 dbaccess/source/ui/dlg/generalpage.cxx 15 11 dbaccess/source/ui/dlg/generalpage.hxx 9 0 dbaccess/source/ui/dlg/indexdialog.cxx 2 2 dbaccess/source/ui/dlg/indexfieldscontrol.cxx 5 0 dbaccess/source/ui/dlg/paramdialog.cxx 21 0 dbaccess/source/ui/dlg/queryfilter.cxx 18 0 dbaccess/source/ui/dlg/queryorder.cxx 9 2 dbaccess/source/ui/dlg/sqlmessage.cxx 3 0 dbaccess/source/ui/dlg/tablespage.cxx 3 3 dbaccess/source/ui/dlg/tablespage.hxx 11 0 dbaccess/source/ui/dlg/textconnectionsettings.cxx 8 7 dbaccess/source/ui/inc/CollectionView.hxx 2 1 dbaccess/source/ui/inc/ConnectionLine.hxx 2 1 dbaccess/source/ui/inc/ConnectionLineAccess.hxx 35 35 dbaccess/source/ui/inc/FieldDescControl.hxx 2 1 dbaccess/source/ui/inc/JAccess.hxx 1 1 dbaccess/source/ui/inc/JoinController.hxx 2 2 dbaccess/source/ui/inc/JoinDesignView.hxx 13 13 dbaccess/source/ui/inc/JoinTableView.hxx 1 1 dbaccess/source/ui/inc/QueryDesignView.hxx 5 4 dbaccess/source/ui/inc/QueryPropertiesDialog.hxx 1 1 dbaccess/source/ui/inc/QueryTextView.hxx 2 2 dbaccess/source/ui/inc/QueryViewSwitch.hxx 3 3 dbaccess/source/ui/inc/RelationControl.hxx 11 9 dbaccess/source/ui/inc/RelationDlg.hxx 1 1 dbaccess/source/ui/inc/RelationTableView.hxx 1 1 dbaccess/source/ui/inc/TableConnection.hxx 1 1 dbaccess/source/ui/inc/TableDesignHelpBar.hxx 3 3 dbaccess/source/ui/inc/TableDesignView.hxx 2 1 dbaccess/source/ui/inc/TableFieldDescription.hxx 2 2 dbaccess/source/ui/inc/TableGrantCtrl.hxx 1 1 dbaccess/source/ui/inc/TableWindow.hxx 2 1 dbaccess/source/ui/inc/TableWindowAccess.hxx 2 2 dbaccess/source/ui/inc/TableWindowListBox.hxx 1 1 dbaccess/source/ui/inc/TableWindowTitle.hxx 1 1 dbaccess/source/ui/inc/TokenWriter.hxx 3 3 dbaccess/source/ui/inc/VertSplitView.hxx 13 11 dbaccess/source/ui/inc/WCPage.hxx 6 6 dbaccess/source/ui/inc/WColumnSelect.hxx 5 5 dbaccess/source/ui/inc/WCopyTable.hxx 12 11 dbaccess/source/ui/inc/WNameMatch.hxx 3 1 dbaccess/source/ui/inc/WTabPage.hxx 13 9 dbaccess/source/ui/inc/WTypeSelect.hxx 6 6 dbaccess/source/ui/inc/adtabdlg.hxx 5 5 dbaccess/source/ui/inc/brwview.hxx 1 1 dbaccess/source/ui/inc/curledit.hxx 4 3 dbaccess/source/ui/inc/datasourceconnector.hxx 3 3 dbaccess/source/ui/inc/dbwizsetup.hxx 7 7 dbaccess/source/ui/inc/directsql.hxx 4 2 dbaccess/source/ui/inc/dlgsize.hxx 9 9 dbaccess/source/ui/inc/indexdialog.hxx 2 2 dbaccess/source/ui/inc/indexfieldscontrol.hxx 2 1 dbaccess/source/ui/inc/linkeddocuments.hxx 5 5 dbaccess/source/ui/inc/paramdialog.hxx 2 2 dbaccess/source/ui/inc/querycontainerwindow.hxx 13 11 dbaccess/source/ui/inc/queryfilter.hxx 10 8 dbaccess/source/ui/inc/queryorder.hxx 1 1 dbaccess/source/ui/inc/sqledit.hxx 3 1 dbaccess/source/ui/inc/textconnectionsettings.hxx 2 1 dbaccess/source/ui/inc/undosqledit.hxx 5 5 dbaccess/source/ui/inc/unodatbr.hxx 1 1 dbaccess/source/ui/misc/ToolBoxHelper.cxx 23 0 dbaccess/source/ui/misc/WCPage.cxx 17 0 dbaccess/source/ui/misc/WColumnSelect.cxx 5 5 dbaccess/source/ui/misc/WCopyTable.cxx 20 0 dbaccess/source/ui/misc/WNameMatch.cxx 41 13 dbaccess/source/ui/misc/WTypeSelect.cxx 1 0 dbaccess/source/ui/misc/singledoccontroller.cxx 5 4 dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx 1 1 dbaccess/source/ui/querydesign/JoinController.cxx 2 4 dbaccess/source/ui/querydesign/JoinDesignView.cxx 25 25 dbaccess/source/ui/querydesign/JoinTableView.cxx 1 1 dbaccess/source/ui/querydesign/QTableWindow.cxx 1 1 dbaccess/source/ui/querydesign/QueryDesignFieldUndoAct.hxx 2 1 dbaccess/source/ui/querydesign/QueryDesignUndoAction.hxx 29 30 dbaccess/source/ui/querydesign/QueryDesignView.cxx 1 1 dbaccess/source/ui/querydesign/QueryMoveTabWinUndoAct.hxx 1 1 dbaccess/source/ui/querydesign/QuerySizeTabWinUndoAct.hxx 9 9 dbaccess/source/ui/querydesign/QueryTabConnUndoAction.cxx 1 1 dbaccess/source/ui/querydesign/QueryTabConnUndoAction.hxx 3 5 dbaccess/source/ui/querydesign/QueryTabWinUndoAct.cxx 3 3 dbaccess/source/ui/querydesign/QueryTabWinUndoAct.hxx 24 30 dbaccess/source/ui/querydesign/QueryTableView.cxx 1 2 dbaccess/source/ui/querydesign/QueryTextView.cxx 12 10 dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx 6 6 dbaccess/source/ui/querydesign/SelectionBrowseBox.hxx 1 1 dbaccess/source/ui/querydesign/TableConnection.cxx 1 0 dbaccess/source/ui/querydesign/TableFieldDescription.cxx 2 3 dbaccess/source/ui/querydesign/TableWindow.cxx 4 4 dbaccess/source/ui/querydesign/TableWindowAccess.cxx 1 1 dbaccess/source/ui/querydesign/TableWindowListBox.cxx 3 5 dbaccess/source/ui/querydesign/TableWindowTitle.cxx 1 2 dbaccess/source/ui/querydesign/limitboxcontroller.cxx 2 1 dbaccess/source/ui/querydesign/limitboxcontroller.hxx 2 3 dbaccess/source/ui/querydesign/querycontainerwindow.cxx 5 0 dbaccess/source/ui/querydesign/querydlg.cxx 5 5 dbaccess/source/ui/querydesign/querydlg.hxx 3 2 dbaccess/source/ui/relationdesign/RelationTableView.cxx 1 2 dbaccess/source/ui/tabledesign/FieldDescGenWin.cxx 1 1 dbaccess/source/ui/tabledesign/FieldDescGenWin.hxx 5 4 dbaccess/source/ui/tabledesign/TEditControl.cxx 6 6 dbaccess/source/ui/tabledesign/TEditControl.hxx 1 2 dbaccess/source/ui/tabledesign/TableDesignHelpBar.cxx 3 14 dbaccess/source/ui/tabledesign/TableDesignView.cxx 3 12 dbaccess/source/ui/tabledesign/TableFieldDescWin.cxx 3 3 dbaccess/source/ui/tabledesign/TableFieldDescWin.hxx 4 3 dbaccess/source/ui/tabledesign/TableUndo.hxx 1 1 dbaccess/source/ui/uno/DBTypeWizDlgSetup.cxx 3 3 dbaccess/source/ui/uno/composerdialogs.cxx 1 1 dbaccess/source/ui/uno/copytablewizard.cxx 4 4 desktop/source/app/cmdlinehelp.hxx 10 0 desktop/source/deployment/gui/dp_gui_dependencydialog.cxx 3 1 desktop/source/deployment/gui/dp_gui_dependencydialog.hxx 36 7 desktop/source/deployment/gui/dp_gui_dialog2.cxx 22 20 desktop/source/deployment/gui/dp_gui_dialog2.hxx 3 11 desktop/source/deployment/gui/dp_gui_extlistbox.cxx 3 3 desktop/source/deployment/gui/dp_gui_extlistbox.hxx 5 12 desktop/source/deployment/gui/dp_gui_theextmgr.cxx 3 3 desktop/source/deployment/gui/dp_gui_theextmgr.hxx 15 1 desktop/source/deployment/gui/dp_gui_updatedialog.cxx 15 15 desktop/source/deployment/gui/dp_gui_updatedialog.hxx 7 0 desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx 7 7 desktop/source/deployment/gui/dp_gui_updateinstalldialog.hxx 22 7 desktop/source/deployment/gui/license_dialog.cxx 2 1 editeng/source/editeng/impedit.hxx 2 1 editeng/source/editeng/textconv.hxx 1 1 editeng/source/misc/hangulhanja.cxx 2 2 editeng/source/misc/splwrap.cxx 6 0 extensions/source/abpilot/abpfinalpage.cxx 7 6 extensions/source/abpilot/abpfinalpage.hxx 2 1 extensions/source/abpilot/admininvokationimpl.hxx 10 1 extensions/source/abpilot/admininvokationpage.cxx 4 3 extensions/source/abpilot/admininvokationpage.hxx 12 0 extensions/source/abpilot/fieldmappingpage.cxx 5 3 extensions/source/abpilot/fieldmappingpage.hxx 10 0 extensions/source/abpilot/tableselectionpage.cxx 4 2 extensions/source/abpilot/tableselectionpage.hxx 11 0 extensions/source/abpilot/typeselectionpage.cxx 13 12 extensions/source/abpilot/typeselectionpage.hxx 1 1 extensions/source/abpilot/unodialogabp.cxx 4 3 extensions/source/bibliography/bibbeam.cxx 2 2 extensions/source/bibliography/bibbeam.hxx 5 2 extensions/source/bibliography/bibcont.cxx 2 2 extensions/source/bibliography/bibcont.hxx 1 0 extensions/source/bibliography/bibmod.cxx 1 1 extensions/source/bibliography/bibshortcuthandler.hxx 18 9 extensions/source/bibliography/bibview.cxx 23 11 extensions/source/bibliography/bibview.hxx 85 35 extensions/source/bibliography/datman.cxx 3 2 extensions/source/bibliography/datman.hxx 1 0 extensions/source/bibliography/framectr.cxx 55 7 extensions/source/bibliography/general.cxx 57 41 extensions/source/bibliography/general.hxx 1 0 extensions/source/bibliography/toolbar.cxx 2 2 extensions/source/bibliography/toolbar.hxx 39 0 extensions/source/dbpilots/commonpagesdbp.cxx 17 11 extensions/source/dbpilots/commonpagesdbp.hxx 12 0 extensions/source/dbpilots/controlwizard.cxx 7 6 extensions/source/dbpilots/controlwizard.hxx 15 0 extensions/source/dbpilots/gridwizard.cxx 8 6 extensions/source/dbpilots/gridwizard.hxx 48 2 extensions/source/dbpilots/groupboxwiz.cxx 18 10 extensions/source/dbpilots/groupboxwiz.hxx 33 0 extensions/source/dbpilots/listcombowizard.cxx 12 6 extensions/source/dbpilots/listcombowizard.hxx 7 6 extensions/source/plugin/inc/plugin/plctrl.hxx 3 4 extensions/source/propctrlr/browserline.cxx 4 4 extensions/source/propctrlr/browserline.hxx 2 2 extensions/source/propctrlr/browserview.cxx 1 1 extensions/source/propctrlr/browserview.hxx 2 7 extensions/source/propctrlr/commoncontrol.cxx 1 1 extensions/source/propctrlr/commoncontrol.hxx 1 1 extensions/source/propctrlr/controlfontdialog.cxx 25 2 extensions/source/propctrlr/formlinkdialog.cxx 6 5 extensions/source/propctrlr/formlinkdialog.hxx 11 0 extensions/source/propctrlr/listselectiondlg.cxx 3 1 extensions/source/propctrlr/listselectiondlg.hxx 11 0 extensions/source/propctrlr/newdatatype.cxx 4 2 extensions/source/propctrlr/newdatatype.hxx 1 0 extensions/source/propctrlr/propcontroller.cxx 2 2 extensions/source/propctrlr/propcontroller.hxx 1 5 extensions/source/propctrlr/propertyeditor.cxx 1 1 extensions/source/propctrlr/propertyeditor.hxx 3 0 extensions/source/propctrlr/selectlabeldialog.cxx 3 3 extensions/source/propctrlr/selectlabeldialog.hxx 5 11 extensions/source/propctrlr/standardcontrol.cxx 2 2 extensions/source/propctrlr/standardcontrol.hxx 5 0 extensions/source/propctrlr/taborder.cxx 5 5 extensions/source/propctrlr/taborder.hxx 14 0 extensions/source/scanner/grid.cxx 6 5 extensions/source/scanner/grid.hxx 31 1 extensions/source/scanner/sanedlg.cxx 24 24 extensions/source/scanner/sanedlg.hxx 13 0 filter/source/flash/impswfdialog.cxx 9 8 filter/source/flash/impswfdialog.hxx 1 1 filter/source/flash/swfdialog.cxx 122 2 filter/source/pdf/impdialog.cxx 99 93 filter/source/pdf/impdialog.hxx 1 1 filter/source/pdf/pdfdialog.cxx 2 2 filter/source/pdf/pdffilter.cxx 1 1 filter/source/svg/svgdialog.cxx 3 7 filter/source/xsltdialog/xmlfilterdialogcomponent.cxx 29 2 filter/source/xsltdialog/xmlfiltersettingsdialog.cxx 17 13 filter/source/xsltdialog/xmlfiltersettingsdialog.hxx 4 2 filter/source/xsltdialog/xmlfiltertabdialog.cxx 4 4 filter/source/xsltdialog/xmlfiltertabdialog.hxx 12 0 filter/source/xsltdialog/xmlfiltertabpagebasic.cxx 6 5 filter/source/xsltdialog/xmlfiltertabpagebasic.hxx 14 0 filter/source/xsltdialog/xmlfiltertabpagexslt.cxx 9 8 filter/source/xsltdialog/xmlfiltertabpagexslt.hxx 15 1 filter/source/xsltdialog/xmlfiltertestdialog.cxx 15 15 filter/source/xsltdialog/xmlfiltertestdialog.hxx 8 11 forms/source/richtext/richtextimplcontrol.cxx 7 7 forms/source/richtext/richtextimplcontrol.hxx 2 8 forms/source/solar/control/navtoolbar.cxx 2 2 forms/source/solar/inc/navtoolbar.hxx 10 8 formula/source/ui/dlg/ControlHelper.hxx 33 33 formula/source/ui/dlg/formula.cxx 12 0 formula/source/ui/dlg/funcpage.cxx 4 2 formula/source/ui/dlg/funcpage.hxx 39 16 formula/source/ui/dlg/funcutl.cxx 20 0 formula/source/ui/dlg/parawin.cxx 25 25 formula/source/ui/dlg/parawin.hxx 11 0 formula/source/ui/dlg/structpg.cxx 3 1 formula/source/ui/dlg/structpg.hxx 1 1 fpicker/source/office/OfficeControlAccess.hxx 6 8 fpicker/source/office/PlacesListBox.cxx 6 6 fpicker/source/office/PlacesListBox.hxx 5 3 fpicker/source/office/QueryFolderName.hxx 3 2 fpicker/source/office/asyncfilepicker.hxx 3 7 fpicker/source/office/commonpicker.cxx 2 1 fpicker/source/office/commonpicker.hxx 34 9 fpicker/source/office/iodlg.cxx 11 11 fpicker/source/office/iodlg.hxx 3 2 fpicker/source/office/iodlgimp.cxx 25 27 fpicker/source/office/iodlgimp.hxx 2 4 framework/inc/classes/fwktabwindow.hxx 2 1 framework/inc/dispatch/closedispatcher.hxx 1 1 framework/inc/helper/vclstatusindicator.hxx 4 3 framework/inc/uielement/buttontoolbarcontroller.hxx 1 1 framework/inc/uielement/comboboxtoolbarcontroller.hxx 3 2 framework/inc/uielement/complextoolbarcontroller.hxx 2 1 framework/inc/uielement/dropdownboxtoolbarcontroller.hxx 1 1 framework/inc/uielement/edittoolbarcontroller.hxx 6 5 framework/inc/uielement/generictoolbarcontroller.hxx 2 1 framework/inc/uielement/spinfieldtoolbarcontroller.hxx 2 1 framework/inc/uielement/statusbaritem.hxx 6 5 framework/inc/uielement/statusbarmanager.hxx 1 1 framework/inc/uielement/toolbarmanager.hxx 1 1 framework/inc/uielement/toolbarmerger.hxx 1 2 framework/source/helper/vclstatusindicator.cxx 4 4 framework/source/services/tabwindowservice.cxx 1 1 framework/source/uielement/buttontoolbarcontroller.cxx 1 3 framework/source/uielement/comboboxtoolbarcontroller.cxx 1 1 framework/source/uielement/complextoolbarcontroller.cxx 1 3 framework/source/uielement/dropdownboxtoolbarcontroller.cxx 1 3 framework/source/uielement/edittoolbarcontroller.cxx 1 1 framework/source/uielement/generictoolbarcontroller.cxx 1 3 framework/source/uielement/spinfieldtoolbarcontroller.cxx 25 26 framework/source/uielement/statusbarmanager.cxx 4 4 framework/source/uielement/toolbarmanager.cxx 2 1 include/dbaccess/ToolBoxHelper.hxx 4 3 include/dbaccess/genericcontroller.hxx 2 1 include/editeng/splwrap.hxx 4 2 include/formula/funcutl.hxx 6 10 include/sfx2/basedlgs.hxx 5 3 include/sfx2/checkin.hxx 4 4 include/sfx2/childwin.hxx 46 40 include/sfx2/dinfdlg.hxx 2 3 include/sfx2/fcontnr.hxx 2 1 include/sfx2/frame.hxx 8 9 include/sfx2/infobar.hxx 1 1 include/sfx2/ipclient.hxx 12 12 include/sfx2/mgetempl.hxx 2 2 include/sfx2/newstyle.hxx 16 14 include/sfx2/passwd.hxx 22 21 include/sfx2/printopt.hxx 1 1 include/sfx2/prnmon.hxx 2 1 include/sfx2/sidebar/SidebarPanelBase.hxx 3 3 include/sfx2/stbitem.hxx 10 10 include/sfx2/tabdlg.hxx 10 10 include/sfx2/templatedlg.hxx 4 4 include/sfx2/templateinfodlg.hxx 1 1 include/sfx2/thumbnailview.hxx 1 1 include/sfx2/thumbnailviewitem.hxx 2 1 include/sfx2/viewsh.hxx 5 4 include/svtools/GraphicExportOptionsDialog.hxx 7 6 include/svtools/PlaceEditDialog.hxx 13 13 include/svtools/ServerDetailsControls.hxx 2 1 include/svtools/accessibleruler.hxx 4 4 include/svtools/addresstemplate.hxx 8 8 include/svtools/brwbox.hxx 4 1 include/svtools/brwhead.hxx 4 4 include/svtools/calendar.hxx 4 4 include/svtools/colrdlg.hxx 5 5 include/svtools/editbrowsebox.hxx 3 1 include/svtools/fileview.hxx 2 2 include/svtools/generictoolboxcontroller.hxx 2 1 include/svtools/genericunodialog.hxx 7 7 include/svtools/prnsetup.hxx 3 1 include/svtools/simptabl.hxx 2 0 include/svtools/tabbar.hxx 2 2 include/svtools/treelistbox.hxx 6 7 include/svtools/wizardmachine.hxx 5 5 include/svtools/wizdlg.hxx 2 1 include/svx/AccessibleShapeTreeInfo.hxx 25 25 include/svx/bmpmask.hxx 18 16 include/svx/compressgraphicdialog.hxx 4 2 include/svx/contdlg.hxx 29 27 include/svx/ctredlin.hxx 1 1 include/svx/dialcontrol.hxx 5 5 include/svx/fillctrl.hxx 1 1 include/svx/fmshell.hxx 7 3 include/svx/fontworkgallery.hxx 16 16 include/svx/hdft.hxx 9 9 include/svx/imapdlg.hxx 1 1 include/svx/lboxctrl.hxx 1 1 include/svx/linkwarn.hxx 21 19 include/svx/optgrid.hxx 8 6 include/svx/passwd.hxx 24 22 include/svx/rubydialog.hxx 1 1 include/svx/ruler.hxx 2 1 include/svx/sidebar/Popup.hxx 50 50 include/svx/srchdlg.hxx 2 2 include/svx/svdedxv.hxx 2 2 include/svx/svdpntv.hxx 4 3 include/svx/tbxcolorupdate.hxx 3 2 include/tools/errinf.hxx 9 11 include/vcl/builder.hxx 2 2 include/vcl/button.hxx 3 3 include/vcl/combobox.hxx 2 2 include/vcl/controllayout.hxx 2 1 include/vcl/cursor.hxx 1 1 include/vcl/dialog.hxx 7 7 include/vcl/dockwin.hxx 2 1 include/vcl/event.hxx 1 1 include/vcl/field.hxx 1 1 include/vcl/fixed.hxx 2 2 include/vcl/floatwin.hxx 1 1 include/vcl/fltcall.hxx 17 13 include/vcl/layout.hxx 4 4 include/vcl/lstbox.hxx 1 1 include/vcl/menu.hxx 8 8 include/vcl/msgbox.hxx 4 4 include/vcl/opengl/OpenGLContext.hxx 1 1 include/vcl/seleng.hxx 1 1 include/vcl/split.hxx 1 1 include/vcl/syswin.hxx 2 2 include/vcl/tabdlg.hxx 1 1 include/vcl/tabpage.hxx 1 1 include/vcl/taskpanelist.hxx 2 2 include/vcl/toolbox.hxx 4 3 include/vcl/vclevent.hxx 39 1 include/vcl/vclptr.hxx 1 1 include/vcl/waitobj.hxx 2 2 include/vcl/window.hxx 8 1 reportdesign/source/ui/dlg/AddField.cxx 9 0 reportdesign/source/ui/dlg/CondFormat.cxx 14 3 reportdesign/source/ui/dlg/Condition.cxx 16 16 reportdesign/source/ui/dlg/Condition.hxx 13 0 reportdesign/source/ui/dlg/DateTime.cxx 2 0 reportdesign/source/ui/dlg/Formula.cxx 58 17 reportdesign/source/ui/dlg/GroupsSorting.cxx 1 1 reportdesign/source/ui/dlg/Navigator.cxx 12 0 reportdesign/source/ui/dlg/PageNumber.cxx 6 6 reportdesign/source/ui/inc/CondFormat.hxx 8 7 reportdesign/source/ui/inc/DateTime.hxx 4 4 reportdesign/source/ui/inc/DesignView.hxx 3 3 reportdesign/source/ui/inc/Formula.hxx 10 10 reportdesign/source/ui/inc/GroupsSorting.hxx 7 6 reportdesign/source/ui/inc/PageNumber.hxx 1 1 reportdesign/source/ui/inc/ReportController.hxx 1 1 reportdesign/source/ui/inc/ReportSection.hxx 4 4 reportdesign/source/ui/inc/ReportWindow.hxx 1 1 reportdesign/source/ui/inc/ScrollHelper.hxx 2 2 reportdesign/source/ui/inc/SectionView.hxx 1 1 reportdesign/source/ui/inc/SectionWindow.hxx 1 1 reportdesign/source/ui/inc/StartMarker.hxx 6 6 reportdesign/source/ui/inc/ViewsWindow.hxx 1 1 reportdesign/source/ui/inc/dlgedfunc.hxx 1 1 reportdesign/source/ui/inc/propbrw.hxx 9 3 reportdesign/source/ui/report/DesignView.cxx 1 0 reportdesign/source/ui/report/ReportSection.cxx 2 0 reportdesign/source/ui/report/ReportWindow.cxx 1 0 reportdesign/source/ui/report/ScrollHelper.cxx 1 0 reportdesign/source/ui/report/SectionWindow.cxx 1 0 reportdesign/source/ui/report/StartMarker.cxx 1 0 reportdesign/source/ui/report/ViewsWindow.cxx 1 0 reportdesign/source/ui/report/propbrw.cxx 2 1 sc/inc/AccessibleFilterMenu.hxx 2 1 sc/inc/AccessibleFilterMenuItem.hxx 2 2 sc/inc/scmod.hxx 2 1 sc/inc/scopetools.hxx 1 1 sc/inc/waitoff.hxx 12 12 sc/source/ui/Accessibility/AccessibleText.cxx 12 1 sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx 9 1 sc/source/ui/StatisticsDialogs/ExponentialSmoothingDialog.cxx 9 1 sc/source/ui/StatisticsDialogs/MovingAverageDialog.cxx 25 3 sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx 22 3 sc/source/ui/StatisticsDialogs/SamplingDialog.cxx 18 1 sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx 22 2 sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx 5 0 sc/source/ui/app/inputhdl.cxx 7 7 sc/source/ui/app/scmod.cxx 2 4 sc/source/ui/attrdlg/scdlgfact.hxx 30 0 sc/source/ui/attrdlg/scuiexp.cxx 14 0 sc/source/ui/attrdlg/tabpages.cxx 18 0 sc/source/ui/cctrl/checklistmenu.cxx 23 0 sc/source/ui/condformat/colorformat.cxx 24 0 sc/source/ui/condformat/condformatdlg.cxx 4 1 sc/source/ui/condformat/condformatmgr.cxx 37 3 sc/source/ui/dbgui/PivotLayoutDialog.cxx 10 2 sc/source/ui/dbgui/PivotLayoutTreeListBase.cxx 1 1 sc/source/ui/dbgui/PivotLayoutTreeListLabel.cxx 17 0 sc/source/ui/dbgui/consdlg.cxx 13 0 sc/source/ui/dbgui/dapidata.cxx 23 0 sc/source/ui/dbgui/dapitype.cxx 15 0 sc/source/ui/dbgui/dbnamdlg.cxx 39 0 sc/source/ui/dbgui/dpgroupdlg.cxx 32 0 sc/source/ui/dbgui/filtdlg.cxx 18 0 sc/source/ui/dbgui/pfiltdlg.cxx 78 0 sc/source/ui/dbgui/pvfundlg.cxx 18 0 sc/source/ui/dbgui/scendlg.cxx 22 0 sc/source/ui/dbgui/scuiasciiopt.cxx 12 0 sc/source/ui/dbgui/scuiimoptdlg.cxx 19 0 sc/source/ui/dbgui/sfiltdlg.cxx 13 0 sc/source/ui/dbgui/sortdlg.cxx 11 0 sc/source/ui/dbgui/subtdlg.cxx 12 0 sc/source/ui/dbgui/textimportoptions.cxx 26 4 sc/source/ui/dbgui/tpsort.cxx 18 0 sc/source/ui/dbgui/tpsubt.cxx 59 0 sc/source/ui/dbgui/validate.cxx 1 1 sc/source/ui/dialogs/searchresults.cxx 3 3 sc/source/ui/docshell/tablink.cxx 10 0 sc/source/ui/docshell/tpstat.cxx 0 2 sc/source/ui/drawfunc/fupoor.cxx 1 0 sc/source/ui/formdlg/dwfunctr.cxx 2 1 sc/source/ui/inc/AccessibleCsvControl.hxx 1 1 sc/source/ui/inc/AccessibleEditObject.hxx 2 2 sc/source/ui/inc/AccessibleText.hxx 5 4 sc/source/ui/inc/AnalysisOfVarianceDialog.hxx 2 1 sc/source/ui/inc/ExponentialSmoothingDialog.hxx 2 1 sc/source/ui/inc/MovingAverageDialog.hxx 28 27 sc/source/ui/inc/PivotLayoutDialog.hxx 2 1 sc/source/ui/inc/PivotLayoutTreeListBase.hxx 16 15 sc/source/ui/inc/RandomNumberGeneratorDialog.hxx 15 14 sc/source/ui/inc/SamplingDialog.hxx 11 10 sc/source/ui/inc/StatisticsInputOutputDialog.hxx 14 13 sc/source/ui/inc/StatisticsTwoVariableDialog.hxx 4 4 sc/source/ui/inc/acredlin.hxx 9 9 sc/source/ui/inc/anyrefdg.hxx 12 12 sc/source/ui/inc/areasdlg.hxx 8 5 sc/source/ui/inc/checklistmenu.hxx 15 14 sc/source/ui/inc/colorformat.hxx 11 8 sc/source/ui/inc/condformatdlg.hxx 4 4 sc/source/ui/inc/condformatmgr.hxx 6 5 sc/source/ui/inc/conflictsdlg.hxx 17 17 sc/source/ui/inc/consdlg.hxx 2 1 sc/source/ui/inc/content.hxx 9 2 sc/source/ui/inc/corodlg.hxx 6 4 sc/source/ui/inc/crdlg.hxx 13 12 sc/source/ui/inc/crnrdlg.hxx 5 3 sc/source/ui/inc/dapidata.hxx 12 11 sc/source/ui/inc/dapitype.hxx 10 9 sc/source/ui/inc/datafdlg.hxx 19 17 sc/source/ui/inc/datastreamdlg.hxx 18 18 sc/source/ui/inc/dbnamdlg.hxx 6 4 sc/source/ui/inc/delcldlg.hxx 10 9 sc/source/ui/inc/delcodlg.hxx 28 27 sc/source/ui/inc/dpgroupdlg.hxx 1 1 sc/source/ui/inc/dwfunctr.hxx 21 20 sc/source/ui/inc/filldlg.hxx 60 60 sc/source/ui/inc/filtdlg.hxx 12 12 sc/source/ui/inc/foptmgr.hxx 2 2 sc/source/ui/inc/fupoor.hxx 2 2 sc/source/ui/inc/gridwin.hxx 3 3 sc/source/ui/inc/groupdlg.hxx 8 8 sc/source/ui/inc/highred.hxx 5 4 sc/source/ui/inc/inputhdl.hxx 5 4 sc/source/ui/inc/inscldlg.hxx 26 26 sc/source/ui/inc/inscodlg.hxx 13 13 sc/source/ui/inc/instbdlg.hxx 3 1 sc/source/ui/inc/lbseldlg.hxx 8 7 sc/source/ui/inc/linkarea.hxx 4 2 sc/source/ui/inc/mtrindlg.hxx 8 7 sc/source/ui/inc/mvtabdlg.hxx 6 5 sc/source/ui/inc/namecrea.hxx 13 12 sc/source/ui/inc/namedefdlg.hxx 14 14 sc/source/ui/inc/namedlg.hxx 4 4 sc/source/ui/inc/namepast.hxx 1 1 sc/source/ui/inc/navipi.hxx 4 4 sc/source/ui/inc/notemark.hxx 5 5 sc/source/ui/inc/opredlin.hxx 67 60 sc/source/ui/inc/optsolver.hxx 21 21 sc/source/ui/inc/pfiltdlg.hxx 5 5 sc/source/ui/inc/prevwsh.hxx 8 7 sc/source/ui/inc/protectiondlg.hxx 46 42 sc/source/ui/inc/pvfundlg.hxx 1 1 sc/source/ui/inc/reffact.hxx 14 12 sc/source/ui/inc/retypepassdlg.hxx 10 9 sc/source/ui/inc/scendlg.hxx 22 22 sc/source/ui/inc/scuiasciiopt.hxx 15 13 sc/source/ui/inc/scuiautofmt.hxx 12 12 sc/source/ui/inc/scuiimoptdlg.hxx 22 21 sc/source/ui/inc/scuitphfedit.hxx 1 1 sc/source/ui/inc/searchresults.hxx 3 3 sc/source/ui/inc/sharedocdlg.hxx 4 2 sc/source/ui/inc/shtabdlg.hxx 6 5 sc/source/ui/inc/simpref.hxx 11 7 sc/source/ui/inc/solveroptions.hxx 11 10 sc/source/ui/inc/solvrdlg.hxx 5 3 sc/source/ui/inc/sortdlg.hxx 6 6 sc/source/ui/inc/sortkeydlg.hxx 4 3 sc/source/ui/inc/strindlg.hxx 3 1 sc/source/ui/inc/subtdlg.hxx 8 3 sc/source/ui/inc/tabbgcolordlg.hxx 13 12 sc/source/ui/inc/tabopdlg.hxx 7 4 sc/source/ui/inc/tabpages.hxx 5 5 sc/source/ui/inc/tabview.hxx 6 6 sc/source/ui/inc/textimportoptions.hxx 16 16 sc/source/ui/inc/tpcalc.hxx 3 3 sc/source/ui/inc/tpcompatibility.hxx 3 2 sc/source/ui/inc/tpdefaults.hxx 12 12 sc/source/ui/inc/tpformula.hxx 7 6 sc/source/ui/inc/tphf.hxx 5 5 sc/source/ui/inc/tpprint.hxx 17 17 sc/source/ui/inc/tpsort.hxx 5 5 sc/source/ui/inc/tpstat.hxx 13 13 sc/source/ui/inc/tpsubt.hxx 24 24 sc/source/ui/inc/tptable.hxx 12 12 sc/source/ui/inc/tpusrlst.hxx 44 44 sc/source/ui/inc/tpview.hxx 34 28 sc/source/ui/inc/validate.hxx 11 9 sc/source/ui/inc/xmlsourcedlg.hxx 4 1 sc/source/ui/miscdlgs/acredlin.cxx 8 10 sc/source/ui/miscdlgs/anyrefdg.cxx 11 0 sc/source/ui/miscdlgs/conflictsdlg.cxx 15 0 sc/source/ui/miscdlgs/crdlg.cxx 19 1 sc/source/ui/miscdlgs/crnrdlg.cxx 14 0 sc/source/ui/miscdlgs/datafdlg.cxx 27 0 sc/source/ui/miscdlgs/datastreamdlg.cxx 15 0 sc/source/ui/miscdlgs/delcldlg.cxx 19 4 sc/source/ui/miscdlgs/delcodlg.cxx 26 0 sc/source/ui/miscdlgs/filldlg.cxx 11 3 sc/source/ui/miscdlgs/groupdlg.cxx 7 1 sc/source/ui/miscdlgs/highred.cxx 14 4 sc/source/ui/miscdlgs/inscldlg.cxx 22 0 sc/source/ui/miscdlgs/inscodlg.cxx 13 0 sc/source/ui/miscdlgs/instbdlg.cxx 12 0 sc/source/ui/miscdlgs/lbseldlg.cxx 13 0 sc/source/ui/miscdlgs/linkarea.cxx 12 0 sc/source/ui/miscdlgs/mtrindlg.cxx 13 0 sc/source/ui/miscdlgs/mvtabdlg.cxx 14 0 sc/source/ui/miscdlgs/namecrea.cxx 94 1 sc/source/ui/miscdlgs/optsolver.cxx 13 0 sc/source/ui/miscdlgs/protectiondlg.cxx 24 1 sc/source/ui/miscdlgs/retypepassdlg.cxx 23 0 sc/source/ui/miscdlgs/scuiautofmt.cxx 3 1 sc/source/ui/miscdlgs/sharedocdlg.cxx 12 0 sc/source/ui/miscdlgs/shtabdlg.cxx 11 0 sc/source/ui/miscdlgs/simpref.cxx 27 0 sc/source/ui/miscdlgs/solveroptions.cxx 17 1 sc/source/ui/miscdlgs/solvrdlg.cxx 12 0 sc/source/ui/miscdlgs/strindlg.cxx 23 0 sc/source/ui/miscdlgs/tabbgcolordlg.cxx 19 0 sc/source/ui/miscdlgs/tabopdlg.cxx 21 0 sc/source/ui/namedlg/namedefdlg.cxx 14 1 sc/source/ui/namedlg/namedlg.cxx 4 1 sc/source/ui/namedlg/namepast.cxx 7 0 sc/source/ui/navipi/content.cxx 21 1 sc/source/ui/optdlg/calcoptionsdlg.cxx 17 16 sc/source/ui/optdlg/calcoptionsdlg.hxx 10 0 sc/source/ui/optdlg/opredlin.cxx 16 0 sc/source/ui/optdlg/tpcalc.cxx 7 0 sc/source/ui/optdlg/tpcompatibility.cxx 8 0 sc/source/ui/optdlg/tpdefaults.cxx 17 0 sc/source/ui/optdlg/tpformula.cxx 9 0 sc/source/ui/optdlg/tpprint.cxx 12 0 sc/source/ui/optdlg/tpusrlst.cxx 43 0 sc/source/ui/optdlg/tpview.cxx 12 0 sc/source/ui/pagedlg/areasdlg.cxx 26 0 sc/source/ui/pagedlg/scuitphfedit.cxx 8 0 sc/source/ui/pagedlg/tphf.cxx 27 0 sc/source/ui/pagedlg/tptable.cxx 14 0 sc/source/ui/sidebar/AlignmentPropertyPanel.cxx 11 9 sc/source/ui/sidebar/AlignmentPropertyPanel.hxx 10 0 sc/source/ui/sidebar/CellAppearancePropertyPanel.cxx 7 5 sc/source/ui/sidebar/CellAppearancePropertyPanel.hxx 12 0 sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx 8 7 sc/source/ui/sidebar/NumberFormatPropertyPanel.hxx 4 4 sc/source/ui/vba/vbaeventshelper.cxx 14 13 sc/source/ui/view/gridwin.cxx 1 1 sc/source/ui/view/gridwin2.cxx 4 4 sc/source/ui/view/prevwsh.cxx 15 15 sc/source/ui/view/reffact.cxx 1 1 sc/source/ui/view/tabview.cxx 3 4 sc/source/ui/view/tabview5.cxx 20 1 sc/source/ui/xmlsource/xmlsourcedlg.cxx 1 1 sd/inc/Outliner.hxx 105 3 sd/source/filter/html/pubdlg.cxx 8 8 sd/source/ui/accessibility/AccessibleSlideSorterView.cxx 19 5 sd/source/ui/animations/CustomAnimationCreateDialog.cxx 2 2 sd/source/ui/animations/CustomAnimationCreateDialog.hxx 120 58 sd/source/ui/animations/CustomAnimationDialog.cxx 4 4 sd/source/ui/animations/CustomAnimationDialog.hxx 1 1 sd/source/ui/animations/CustomAnimationList.cxx 20 3 sd/source/ui/animations/CustomAnimationPane.cxx 17 17 sd/source/ui/animations/CustomAnimationPane.hxx 14 1 sd/source/ui/animations/SlideTransitionPane.cxx 13 13 sd/source/ui/animations/SlideTransitionPane.hxx 1 1 sd/source/ui/annotations/annotationtag.hxx 10 3 sd/source/ui/annotations/annotationwindow.cxx 5 4 sd/source/ui/annotations/annotationwindow.hxx 11 2 sd/source/ui/controller/slidelayoutcontroller.cxx 2 2 sd/source/ui/dlg/PaneChildWindows.cxx 17 0 sd/source/ui/dlg/PhotoAlbumDialog.cxx 13 11 sd/source/ui/dlg/PhotoAlbumDialog.hxx 13 0 sd/source/ui/dlg/RemoteDialog.cxx 5 3 sd/source/ui/dlg/RemoteDialog.hxx 1 1 sd/source/ui/dlg/RemoteDialogClientBox.hxx 20 2 sd/source/ui/dlg/animobjs.cxx 4 2 sd/source/ui/dlg/brkdlg.cxx 11 25 sd/source/ui/dlg/copydlg.cxx 29 0 sd/source/ui/dlg/custsdlg.cxx 61 61 sd/source/ui/dlg/dlgass.cxx 15 0 sd/source/ui/dlg/dlgfield.cxx 19 0 sd/source/ui/dlg/dlgsnap.cxx 47 19 sd/source/ui/dlg/headerfooterdlg.cxx 12 0 sd/source/ui/dlg/ins_paste.cxx 9 0 sd/source/ui/dlg/inspagob.cxx 16 0 sd/source/ui/dlg/layeroptionsdlg.cxx 15 0 sd/source/ui/dlg/masterlayoutdlg.cxx 9 0 sd/source/ui/dlg/morphdlg.cxx 13 3 sd/source/ui/dlg/paragr.cxx 33 0 sd/source/ui/dlg/present.cxx 26 1 sd/source/ui/dlg/prntopts.cxx 7 7 sd/source/ui/dlg/sddlgfact.cxx 1 2 sd/source/ui/dlg/sddlgfact.hxx 10 0 sd/source/ui/dlg/sdpreslt.cxx 3 1 sd/source/ui/dlg/sdtreelb.cxx 15 0 sd/source/ui/dlg/sduiexp.cxx 19 0 sd/source/ui/dlg/tpaction.cxx 42 0 sd/source/ui/dlg/tpoption.cxx 16 0 sd/source/ui/dlg/vectdlg.cxx 1 1 sd/source/ui/framework/factories/ChildWindowPane.cxx 4 8 sd/source/ui/framework/factories/FullScreenPane.cxx 1 1 sd/source/ui/framework/factories/Pane.cxx 5 3 sd/source/ui/func/fupoor.cxx 1 1 sd/source/ui/inc/AccessibleDocumentViewBase.hxx 2 1 sd/source/ui/inc/AccessibleSlideSorterView.hxx 4 4 sd/source/ui/inc/BreakDlg.hxx 2 1 sd/source/ui/inc/FormShellManager.hxx 1 1 sd/source/ui/inc/Ruler.hxx 2 2 sd/source/ui/inc/ViewShell.hxx 1 1 sd/source/ui/inc/Window.hxx 2 1 sd/source/ui/inc/WindowUpdater.hxx 23 23 sd/source/ui/inc/animobjs.hxx 11 11 sd/source/ui/inc/copydlg.hxx 21 20 sd/source/ui/inc/custsdlg.hxx 6 5 sd/source/ui/inc/dlgfield.hxx 11 9 sd/source/ui/inc/dlgsnap.hxx 2 1 sd/source/ui/inc/framework/Pane.hxx 3 3 sd/source/ui/inc/fupoor.hxx 6 6 sd/source/ui/inc/headerfooterdlg.hxx 4 2 sd/source/ui/inc/ins_paste.hxx 4 3 sd/source/ui/inc/inspagob.hxx 9 6 sd/source/ui/inc/layeroptionsdlg.hxx 7 5 sd/source/ui/inc/masterlayoutdlg.hxx 5 4 sd/source/ui/inc/morphdlg.hxx 2 2 sd/source/ui/inc/navigatr.hxx 25 23 sd/source/ui/inc/present.hxx 20 19 sd/source/ui/inc/prntopts.hxx 85 84 sd/source/ui/inc/pubdlg.hxx 6 5 sd/source/ui/inc/sdpreslt.hxx 2 2 sd/source/ui/inc/sdtreelb.hxx 1 1 sd/source/ui/inc/taskpane/SlideSorterCacheDisplay.hxx 16 15 sd/source/ui/inc/tpaction.hxx 32 30 sd/source/ui/inc/tpoption.hxx 11 10 sd/source/ui/inc/vectdlg.hxx 1 1 sd/source/ui/slideshow/slideshow.cxx 6 8 sd/source/ui/slideshow/slideshowimpl.cxx 6 6 sd/source/ui/slideshow/slideshowimpl.hxx 2 2 sd/source/ui/table/TableDesignPane.hxx 2 2 sd/source/ui/view/FormShellManager.cxx 1 0 sd/source/ui/view/sdruler.cxx 1 1 sd/source/ui/view/sdview2.cxx 1 0 sd/source/ui/view/sdwindow.cxx 1 1 sd/source/ui/view/viewshe2.cxx 1 1 sd/source/ui/view/viewshel.cxx 6 6 sfx2/inc/srchdlg.hxx 8 10 sfx2/source/appl/childwin.cxx 1 1 sfx2/source/appl/fileobj.hxx 2 1 sfx2/source/appl/helpinterceptor.hxx 20 4 sfx2/source/appl/impldde.cxx 2 2 sfx2/source/appl/lnkbase2.cxx 65 14 sfx2/source/appl/newhelp.cxx 33 25 sfx2/source/appl/newhelp.hxx 8 8 sfx2/source/appl/workwin.cxx 1 1 sfx2/source/control/thumbnailview.cxx 1 1 sfx2/source/control/thumbnailviewacc.cxx 3 2 sfx2/source/control/thumbnailviewacc.hxx 2 3 sfx2/source/control/thumbnailviewitem.cxx 2 0 sfx2/source/dialog/alienwarn.cxx 23 4 sfx2/source/dialog/backingwindow.cxx 29 29 sfx2/source/dialog/backingwindow.hxx 10 3 sfx2/source/dialog/basedlgs.cxx 13 0 sfx2/source/dialog/checkin.cxx 88 14 sfx2/source/dialog/dinfdlg.cxx 4 6 sfx2/source/dialog/dockwin.cxx 11 0 sfx2/source/dialog/documentfontsdialog.cxx 1 1 sfx2/source/dialog/filedlgimpl.hxx 8 23 sfx2/source/dialog/infobar.cxx 14 0 sfx2/source/dialog/inputdlg.cxx 12 0 sfx2/source/dialog/mgetempl.cxx 1 1 sfx2/source/dialog/navigat.cxx 2 0 sfx2/source/dialog/newstyle.cxx 4 4 sfx2/source/dialog/partwnd.cxx 22 0 sfx2/source/dialog/passwd.cxx 30 0 sfx2/source/dialog/printopt.cxx 2 1 sfx2/source/dialog/recfloat.cxx 4 4 sfx2/source/dialog/securitypage.cxx 11 8 sfx2/source/dialog/splitwin.cxx 6 0 sfx2/source/dialog/srchdlg.cxx 22 22 sfx2/source/dialog/tabdlg.cxx 5 1 sfx2/source/dialog/templateinfodlg.cxx 4 5 sfx2/source/dialog/templdlg.cxx 29 2 sfx2/source/dialog/versdlg.cxx 11 11 sfx2/source/doc/new.cxx 12 2 sfx2/source/doc/templatedlg.cxx 2 2 sfx2/source/inc/alienwarn.hxx 3 1 sfx2/source/inc/documentfontsdialog.hxx 6 4 sfx2/source/inc/inputdlg.hxx 1 1 sfx2/source/inc/recfloat.hxx 5 5 sfx2/source/inc/splitwin.hxx 5 5 sfx2/source/inc/templdgi.hxx 21 19 sfx2/source/inc/versdlg.hxx 6 6 sfx2/source/inc/workwin.hxx 12 12 sfx2/source/sidebar/FocusManager.cxx 5 5 sfx2/source/sidebar/FocusManager.hxx 15 4 sfx2/source/sidebar/PanelTitleBar.cxx 3 1 sfx2/source/sidebar/PanelTitleBar.hxx 1 1 sfx2/source/sidebar/SidebarChildWindow.cxx 9 9 sfx2/source/sidebar/SidebarController.cxx 2 2 sfx2/source/sidebar/SidebarController.hxx 6 10 sfx2/source/sidebar/SidebarPanelBase.cxx 1 1 sfx2/source/statbar/stbitem.cxx 1 1 sfx2/source/toolbox/imgmgr.cxx 11 15 sfx2/source/toolbox/tbxitem.cxx 1 1 sfx2/source/view/frame.cxx 1 1 sfx2/source/view/frame2.cxx 7 7 sfx2/source/view/impframe.hxx 2 2 sfx2/source/view/impviewframe.hxx 1 1 sfx2/source/view/printer.cxx 1 1 sfx2/source/view/sfxbasecontroller.cxx 2 2 sfx2/source/view/viewfrm.cxx 2 2 sfx2/source/view/viewprn.cxx 2 2 starmath/inc/ElementsDockingWindow.hxx 85 71 starmath/inc/dialog.hxx 3 3 starmath/inc/edit.hxx 3 3 starmath/inc/toolbox.hxx 1 1 starmath/inc/view.hxx 2 1 starmath/source/ElementsDockingWindow.cxx 2 2 starmath/source/accessibility.hxx 141 0 starmath/source/dialog.cxx 4 6 starmath/source/edit.cxx 4 4 starmath/source/toolbox.cxx 1 1 starmath/source/view.cxx 1 1 svtools/inc/vclxaccessibleheaderbar.hxx 2 1 svtools/inc/vclxaccessibleheaderbaritem.hxx 14 14 svtools/source/brwbox/brwbox1.cxx 16 16 svtools/source/brwbox/brwbox2.cxx 12 0 svtools/source/brwbox/brwhead.cxx 12 0 svtools/source/brwbox/datwin.cxx 6 4 svtools/source/brwbox/datwin.hxx 1 1 svtools/source/brwbox/ebbcontrols.cxx 4 2 svtools/source/brwbox/editbrowsebox.cxx 15 4 svtools/source/contnr/fileview.cxx 2 2 svtools/source/contnr/imivctl.hxx 2 2 svtools/source/contnr/imivctl1.cxx 11 0 svtools/source/contnr/simptabl.cxx 1 1 svtools/source/contnr/svtabbx.cxx 1 1 svtools/source/contnr/treelistbox.cxx 15 27 svtools/source/control/calendar.cxx 4 4 svtools/source/control/inettbc.cxx 2 2 svtools/source/control/roadmap.cxx 21 15 svtools/source/control/tabbar.cxx 6 6 svtools/source/control/toolbarmenu.cxx 1 1 svtools/source/control/toolbarmenuimp.hxx 1 1 svtools/source/control/valueacc.cxx 2 2 svtools/source/control/valueimp.hxx 16 0 svtools/source/dialogs/PlaceEditDialog.cxx 4 0 svtools/source/dialogs/addresstemplate.cxx 1 0 svtools/source/dialogs/colrdlg.cxx 8 0 svtools/source/dialogs/prnsetup.cxx 11 4 svtools/source/dialogs/restartdialog.cxx 1 6 svtools/source/dialogs/roadmapwizard.cxx 5 5 svtools/source/dialogs/wizardmachine.cxx 6 2 svtools/source/dialogs/wizdlg.cxx 13 0 svtools/source/filter/GraphicExportOptionsDialog.cxx 33 0 svtools/source/filter/exportdialog.cxx 33 33 svtools/source/filter/exportdialog.hxx 1 1 svtools/source/hatchwindow/hatchwindow.cxx 1 1 svtools/source/inc/hatchwindow.hxx 2 2 svtools/source/inc/svimpbox.hxx 2 2 svtools/source/misc/dialogcontrolling.cxx 8 12 svtools/source/table/tablecontrol_impl.cxx 3 3 svtools/source/table/tablecontrol_impl.hxx 2 2 svtools/source/toolpanel/paneltabbarpeer.cxx 1 1 svtools/source/toolpanel/paneltabbarpeer.hxx 2 2 svtools/source/toolpanel/toolpaneldeckpeer.cxx 1 1 svtools/source/toolpanel/toolpaneldeckpeer.hxx 1 1 svtools/source/uno/addrtempuno.cxx 2 4 svtools/source/uno/generictoolboxcontroller.cxx 1 2 svtools/source/uno/genericunodialog.cxx 3 3 svtools/source/uno/popupwindowcontroller.cxx 1 1 svtools/source/uno/treecontrolpeer.hxx 10 10 svtools/source/uno/wizard/unowizard.cxx 1 1 svtools/source/uno/wizard/wizardshell.hxx 3 1 svx/inc/extrusiondepthdialog.hxx 3 3 svx/inc/galbrws2.hxx 1 1 svx/inc/svdibrow.hxx 2 2 svx/inc/tbunosearchcontrollers.hxx 1 0 svx/source/accessibility/AccessibleShapeTreeInfo.cxx 3 3 svx/source/accessibility/GraphCtlAccessibleContext.cxx 25 8 svx/source/dialog/_bmpmask.cxx 20 1 svx/source/dialog/_contdlg.cxx 25 0 svx/source/dialog/compressgraphicdialog.cxx 4 4 svx/source/dialog/contimp.hxx 42 10 svx/source/dialog/ctredlin.cxx 45 2 svx/source/dialog/docrecovery.cxx 6 326 svx/source/dialog/fontwork.cxx 16 0 svx/source/dialog/hdft.cxx 10 2 svx/source/dialog/imapdlg.cxx 1 0 svx/source/dialog/linkwarn.cxx 27 0 svx/source/dialog/optgrid.cxx 1 1 svx/source/dialog/orienthelper.cxx 15 0 svx/source/dialog/passwd.cxx 33 0 svx/source/dialog/rubydialog.cxx 43 1 svx/source/dialog/srchdlg.cxx 1 0 svx/source/dialog/svxruler.cxx 159 162 svx/source/fmcomp/gridcell.cxx 3 3 svx/source/fmcomp/gridctrl.cxx 109 12 svx/source/form/datanavi.cxx 2 2 svx/source/form/filtnav.cxx 1 2 svx/source/form/fmPropBrw.cxx 2 2 svx/source/form/fmexpl.cxx 13 2 svx/source/form/tabwin.cxx 1 1 svx/source/form/xfm_addcondition.cxx 1 2 svx/source/gallery2/galbrws1.cxx 1 1 svx/source/gallery2/galbrws1.hxx 8 8 svx/source/gallery2/galbrws2.cxx 2 1 svx/source/inc/AccessibleFrameSelector.hxx 1 1 svx/source/inc/GraphCtlAccessibleContext.hxx 1 1 svx/source/inc/charmapacc.hxx 2 1 svx/source/inc/datalistener.hxx 72 62 svx/source/inc/datanavi.hxx 22 16 svx/source/inc/docrecovery.hxx 1 1 svx/source/inc/filtnav.hxx 1 1 svx/source/inc/fmexch.hxx 1 1 svx/source/inc/fmexpl.hxx 2 1 svx/source/inc/fmvwimp.hxx 6 6 svx/source/inc/gridcell.hxx 2 1 svx/source/inc/svxrectctaccessiblecontext.hxx 4 2 svx/source/inc/tabwin.hxx 1 1 svx/source/inc/tbxform.hxx 17 0 svx/source/sidebar/area/AreaPropertyPanel.cxx 12 8 svx/source/sidebar/area/AreaPropertyPanel.hxx 17 0 svx/source/sidebar/graphic/GraphicPropertyPanel.cxx 11 8 svx/source/sidebar/graphic/GraphicPropertyPanel.hxx 4 2 svx/source/sidebar/insert/InsertPropertyPanel.cxx 2 2 svx/source/sidebar/insert/InsertPropertyPanel.hxx 23 0 svx/source/sidebar/line/LinePropertyPanel.cxx 16 13 svx/source/sidebar/line/LinePropertyPanel.hxx 24 5 svx/source/sidebar/paragraph/ParaLineSpacingControl.cxx 11 9 svx/source/sidebar/paragraph/ParaLineSpacingControl.hxx 20 0 svx/source/sidebar/paragraph/ParaPropertyPanel.cxx 13 10 svx/source/sidebar/paragraph/ParaPropertyPanel.hxx 23 0 svx/source/sidebar/possize/PosSizePropertyPanel.cxx 17 14 svx/source/sidebar/possize/PosSizePropertyPanel.hxx 15 0 svx/source/sidebar/text/TextPropertyPanel.cxx 8 5 svx/source/sidebar/text/TextPropertyPanel.hxx 3 3 svx/source/sidebar/tools/Popup.cxx 5 7 svx/source/svdraw/sdrpaintwindow.cxx 11 11 svx/source/svdraw/svdedxv.cxx 8 9 svx/source/svdraw/svdibrow.cxx 1 1 svx/source/svdraw/svdmrkv.cxx 8 12 svx/source/svdraw/svdpntv.cxx 2 2 svx/source/svdraw/svdview.cxx 14 1 svx/source/tbxctrls/bulletsnumbering.cxx 8 6 svx/source/tbxctrls/colorwindow.hxx 33 0 svx/source/tbxctrls/extrusioncontrols.cxx 6 2 svx/source/tbxctrls/extrusioncontrols.hxx 2 2 svx/source/tbxctrls/fillctrl.cxx 22 0 svx/source/tbxctrls/fontworkgallery.cxx 17 6 svx/source/tbxctrls/lboxctrl.cxx 16 0 svx/source/tbxctrls/tbcontrl.cxx 2 3 svx/source/tbxctrls/tbunocontroller.cxx 2 4 svx/source/tbxctrls/tbunosearchcontrollers.cxx 29 2 svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx 21 19 svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx 1 2 svx/source/unodialogs/textconversiondlgs/chinese_translation_unodialog.cxx 2 1 svx/source/unodialogs/textconversiondlgs/chinese_translation_unodialog.hxx 6 1 svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.cxx 6 6 svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.hxx 1 1 svx/source/unodraw/recoveryui.cxx 1 1 svx/source/unodraw/unoshtxt.cxx 3 2 sw/inc/PostItMgr.hxx 5 5 sw/inc/SidebarWin.hxx 4 2 sw/inc/colwd.hxx 1 1 sw/inc/hhcwrp.hxx 1 1 sw/inc/postithelper.hxx 1 1 sw/inc/viewsh.hxx 22 9 sw/qa/tiledrendering/tiledrendering.cxx 1 1 sw/source/core/access/accdoc.hxx 1 1 sw/source/core/access/accfrmobj.cxx 2 1 sw/source/core/access/accfrmobj.hxx 1 1 sw/source/core/view/viewsh.cxx 17 4 sw/source/ui/chrdlg/break.cxx 10 0 sw/source/ui/chrdlg/chardlg.cxx 21 1 sw/source/ui/chrdlg/drpcps.cxx 20 0 sw/source/ui/chrdlg/numpara.cxx 10 0 sw/source/ui/chrdlg/swuiccoll.cxx 93 34 sw/source/ui/config/mailconfigpage.cxx 4 0 sw/source/ui/config/optcomp.cxx 42 0 sw/source/ui/config/optload.cxx 165 0 sw/source/ui/config/optpage.cxx 9 1 sw/source/ui/dbui/addresslistdialog.cxx 9 9 sw/source/ui/dbui/addresslistdialog.hxx 39 23 sw/source/ui/dbui/createaddresslistdialog.cxx 20 18 sw/source/ui/dbui/createaddresslistdialog.hxx 28 5 sw/source/ui/dbui/customizeaddresslistdialog.cxx 12 8 sw/source/ui/dbui/customizeaddresslistdialog.hxx 29 4 sw/source/ui/dbui/dbinsdlg.cxx 2 0 sw/source/ui/dbui/dbtablepreviewdialog.cxx 2 2 sw/source/ui/dbui/dbtablepreviewdialog.hxx 111 33 sw/source/ui/dbui/mmaddressblockpage.cxx 53 46 sw/source/ui/dbui/mmaddressblockpage.hxx 15 0 sw/source/ui/dbui/mmdocselectpage.cxx 10 9 sw/source/ui/dbui/mmdocselectpage.hxx 21 0 sw/source/ui/dbui/mmgreetingspage.cxx 27 25 sw/source/ui/dbui/mmgreetingspage.hxx 11 0 sw/source/ui/dbui/mmlayoutpage.cxx 11 11 sw/source/ui/dbui/mmlayoutpage.hxx 19 0 sw/source/ui/dbui/mmmergepage.cxx 10 8 sw/source/ui/dbui/mmmergepage.hxx 41 3 sw/source/ui/dbui/mmoutputpage.cxx 42 42 sw/source/ui/dbui/mmoutputpage.hxx 33 3 sw/source/ui/dbui/mmoutputtypepage.cxx 7 5 sw/source/ui/dbui/mmoutputtypepage.hxx 18 0 sw/source/ui/dbui/mmpreparemergepage.cxx 10 8 sw/source/ui/dbui/mmpreparemergepage.hxx 2 1 sw/source/ui/dbui/selectdbtabledialog.cxx 2 2 sw/source/ui/dbui/selectdbtabledialog.hxx 12 0 sw/source/ui/dialog/abstract.cxx 15 0 sw/source/ui/dialog/ascfldlg.cxx 18 1 sw/source/ui/dialog/docstdlg.cxx 0 1 sw/source/ui/dialog/swdlgfact.cxx 2 3 sw/source/ui/dialog/swdlgfact.hxx 15 0 sw/source/ui/dialog/swmessdialog.cxx 25 0 sw/source/ui/dialog/swuiexp.cxx 74 0 sw/source/ui/dialog/uiregionsw.cxx 13 0 sw/source/ui/dialog/wordcountdialog.cxx 11 0 sw/source/ui/dochdl/selglos.cxx 21 0 sw/source/ui/envelp/envfmt.cxx 12 10 sw/source/ui/envelp/envfmt.hxx 14 0 sw/source/ui/envelp/envlop1.cxx 17 0 sw/source/ui/envelp/envprt.cxx 9 7 sw/source/ui/envelp/envprt.hxx 80 0 sw/source/ui/envelp/label1.cxx 35 0 sw/source/ui/envelp/labfmt.cxx 22 19 sw/source/ui/envelp/labfmt.hxx 9 0 sw/source/ui/envelp/labprt.cxx 11 11 sw/source/ui/envelp/labprt.hxx 54 0 sw/source/ui/envelp/mailmrge.cxx 58 52 sw/source/ui/envelp/swuilabimp.hxx 14 0 sw/source/ui/fldui/DropDownFieldDialog.cxx 5 0 sw/source/ui/fldui/changedb.cxx 18 0 sw/source/ui/fldui/flddb.cxx 13 12 sw/source/ui/fldui/flddb.hxx 12 0 sw/source/ui/fldui/flddinf.cxx 7 6 sw/source/ui/fldui/flddinf.hxx 21 0 sw/source/ui/fldui/flddok.cxx 15 14 sw/source/ui/fldui/flddok.hxx 3 0 sw/source/ui/fldui/fldedt.cxx 31 0 sw/source/ui/fldui/fldfunc.cxx 26 25 sw/source/ui/fldui/fldfunc.hxx 15 0 sw/source/ui/fldui/fldref.cxx 10 9 sw/source/ui/fldui/fldref.hxx 22 0 sw/source/ui/fldui/fldvar.cxx 17 16 sw/source/ui/fldui/fldvar.hxx 14 0 sw/source/ui/fldui/inpdlg.cxx 10 0 sw/source/ui/fldui/javaedit.cxx 25 1 sw/source/ui/frmdlg/column.cxx 32 5 sw/source/ui/frmdlg/cption.cxx 91 4 sw/source/ui/frmdlg/frmpage.cxx 20 0 sw/source/ui/frmdlg/wrap.cxx 148 26 sw/source/ui/index/cnttab.cxx 12 1 sw/source/ui/index/multmrk.cxx 19 11 sw/source/ui/index/swuiidxmrk.cxx 9 0 sw/source/ui/misc/bookmark.cxx 27 4 sw/source/ui/misc/docfnote.cxx 12 0 sw/source/ui/misc/glosbib.cxx 35 6 sw/source/ui/misc/glossary.cxx 18 17 sw/source/ui/misc/impfnote.hxx 10 0 sw/source/ui/misc/insfnote.cxx 22 0 sw/source/ui/misc/linenum.cxx 26 2 sw/source/ui/misc/num.cxx 36 3 sw/source/ui/misc/outline.cxx 17 0 sw/source/ui/misc/pgfnote.cxx 28 1 sw/source/ui/misc/pggrid.cxx 28 2 sw/source/ui/misc/srtdlg.cxx 12 0 sw/source/ui/misc/titlepage.cxx 12 0 sw/source/ui/table/colwd.cxx 14 0 sw/source/ui/table/convert.cxx 11 0 sw/source/ui/table/instable.cxx 12 0 sw/source/ui/table/mergetbl.cxx 12 0 sw/source/ui/table/rowht.cxx 14 0 sw/source/ui/table/splittbl.cxx 67 5 sw/source/ui/table/tabledlg.cxx 22 1 sw/source/ui/table/tautofmt.cxx 12 0 sw/source/ui/utlui/swrenamexnameddlg.cxx 33 0 sw/source/uibase/dbui/dbui.cxx 12 1 sw/source/uibase/dbui/mailmergechildwindow.cxx 1 1 sw/source/uibase/docvw/HeaderFooterWin.cxx 4 3 sw/source/uibase/docvw/PageBreakWin.cxx 3 8 sw/source/uibase/docvw/PostItMgr.cxx 6 11 sw/source/uibase/docvw/SidebarWin.cxx 3 4 sw/source/uibase/docvw/srcedtw.cxx 12 1 sw/source/uibase/envelp/syncbtn.cxx 6 4 sw/source/uibase/inc/DropDownFieldDialog.hxx 1 1 sw/source/uibase/inc/FrameControl.hxx 1 1 sw/source/uibase/inc/FrameControlsManager.hxx 2 2 sw/source/uibase/inc/HeaderFooterWin.hxx 1 1 sw/source/uibase/inc/PageBreakWin.hxx 4 4 sw/source/uibase/inc/abstract.hxx 9 8 sw/source/uibase/inc/ascfldlg.hxx 4 3 sw/source/uibase/inc/bookmark.hxx 8 7 sw/source/uibase/inc/break.hxx 5 5 sw/source/uibase/inc/changedb.hxx 11 11 sw/source/uibase/inc/chrdlg.hxx 28 28 sw/source/uibase/inc/column.hxx 3 3 sw/source/uibase/inc/conttree.hxx 14 14 sw/source/uibase/inc/convert.hxx 15 15 sw/source/uibase/inc/cption.hxx 25 25 sw/source/uibase/inc/dbinsdlg.hxx 13 7 sw/source/uibase/inc/dbui.hxx 12 11 sw/source/uibase/inc/docstdlg.hxx 1 1 sw/source/uibase/inc/drawbase.hxx 17 16 sw/source/uibase/inc/drpcps.hxx 10 9 sw/source/uibase/inc/envlop.hxx 3 3 sw/source/uibase/inc/fldedt.hxx 2 1 sw/source/uibase/inc/fldmgr.hxx 83 80 sw/source/uibase/inc/frmpage.hxx 7 6 sw/source/uibase/inc/glosbib.hxx 12 12 sw/source/uibase/inc/glossary.hxx 6 4 sw/source/uibase/inc/inpdlg.hxx 2 2 sw/source/uibase/inc/inputwin.hxx 10 10 sw/source/uibase/inc/insfnote.hxx 11 11 sw/source/uibase/inc/instable.hxx 10 10 sw/source/uibase/inc/javaedit.hxx 1 1 sw/source/uibase/inc/label.hxx 16 15 sw/source/uibase/inc/linenum.hxx 10 10 sw/source/uibase/inc/mailconfigpage.hxx 3 1 sw/source/uibase/inc/mailmergechildwindow.hxx 1 1 sw/source/uibase/inc/mailmergehelper.hxx 47 42 sw/source/uibase/inc/mailmrge.hxx 3 1 sw/source/uibase/inc/mergetbl.hxx 3 2 sw/source/uibase/inc/multmrk.hxx 2 2 sw/source/uibase/inc/navipi.hxx 24 24 sw/source/uibase/inc/num.hxx 15 14 sw/source/uibase/inc/numpara.hxx 4 4 sw/source/uibase/inc/optcomp.hxx 38 36 sw/source/uibase/inc/optload.hxx 138 130 sw/source/uibase/inc/optpage.hxx 12 11 sw/source/uibase/inc/outline.hxx 13 12 sw/source/uibase/inc/pgfnote.hxx 24 22 sw/source/uibase/inc/pggrid.hxx 1 1 sw/source/uibase/inc/prcntfld.hxx 6 6 sw/source/uibase/inc/pview.hxx 3 3 sw/source/uibase/inc/redlndlg.hxx 65 63 sw/source/uibase/inc/regionsw.hxx 4 2 sw/source/uibase/inc/rowht.hxx 4 1 sw/source/uibase/inc/selglos.hxx 1 1 sw/source/uibase/inc/shdwcrsr.hxx 6 4 sw/source/uibase/inc/splittbl.hxx 3 3 sw/source/uibase/inc/srcedtw.hxx 32 32 sw/source/uibase/inc/srtdlg.hxx 7 5 sw/source/uibase/inc/swmessdialog.hxx 4 2 sw/source/uibase/inc/swrenamexnameddlg.hxx 2 1 sw/source/uibase/inc/swruler.hxx 9 9 sw/source/uibase/inc/swuiccoll.hxx 109 105 sw/source/uibase/inc/swuicnttab.hxx 45 45 sw/source/uibase/inc/swuiidxmrk.hxx 3 1 sw/source/uibase/inc/syncbtn.hxx 13 13 sw/source/uibase/inc/tautofmt.hxx 12 12 sw/source/uibase/inc/titlepage.hxx 10 10 sw/source/uibase/inc/view.hxx 13 13 sw/source/uibase/inc/wordcountdialog.hxx 2 2 sw/source/uibase/inc/workctrl.hxx 15 14 sw/source/uibase/inc/wrap.hxx 1 1 sw/source/uibase/misc/redlndlg.cxx 7 0 sw/source/uibase/misc/swruler.cxx 1 1 sw/source/uibase/ribbar/inputwin.cxx 2 1 sw/source/uibase/ribbar/workctrl.cxx 1 0 sw/source/uibase/shells/txtattr.cxx 1 0 sw/source/uibase/shells/txtcrsr.cxx 1 1 sw/source/uibase/sidebar/PageColumnControl.cxx 1 1 sw/source/uibase/sidebar/PageColumnControl.hxx 1 1 sw/source/uibase/sidebar/PageMarginControl.cxx 1 1 sw/source/uibase/sidebar/PageMarginControl.hxx 1 1 sw/source/uibase/sidebar/PageOrientationControl.cxx 1 1 sw/source/uibase/sidebar/PageOrientationControl.hxx 4 0 sw/source/uibase/sidebar/PagePropertyPanel.cxx 4 4 sw/source/uibase/sidebar/PagePropertyPanel.hxx 1 1 sw/source/uibase/sidebar/PageSizeControl.cxx 1 1 sw/source/uibase/sidebar/PageSizeControl.hxx 12 0 sw/source/uibase/sidebar/WrapPropertyPanel.cxx 8 7 sw/source/uibase/sidebar/WrapPropertyPanel.hxx 45 42 sw/source/uibase/table/tablepg.hxx 23 14 sw/source/uibase/uiview/pview.cxx 7 7 sw/source/uibase/uiview/view.cxx 1 5 sw/source/uibase/uiview/viewling.cxx 8 8 sw/source/uibase/uiview/viewmdi.cxx 1 0 sw/source/uibase/utlui/content.cxx 1 0 sw/source/uibase/utlui/glbltree.cxx 19 4 sw/source/uibase/utlui/gloslst.cxx 2 3 sw/source/uibase/utlui/navipi.cxx 1 0 tools/source/ref/errinf.cxx 15 0 uui/source/authfallbackdlg.cxx 7 5 uui/source/authfallbackdlg.hxx 12 0 uui/source/fltdlg.cxx 4 2 uui/source/fltdlg.hxx 25 0 uui/source/logindlg.cxx 17 15 uui/source/logindlg.hxx 13 0 uui/source/masterpasscrtdlg.cxx 5 3 uui/source/masterpasscrtdlg.hxx 12 0 uui/source/masterpassworddlg.cxx 4 2 uui/source/masterpassworddlg.hxx 15 0 uui/source/nameclashdlg.cxx 7 5 uui/source/nameclashdlg.hxx 15 0 uui/source/passworddlg.cxx 7 5 uui/source/passworddlg.hxx 15 0 uui/source/secmacrowarnings.cxx 10 9 uui/source/secmacrowarnings.hxx 14 0 uui/source/unknownauthdlg.cxx 6 4 uui/source/unknownauthdlg.hxx 12 4 vcl/generic/print/genprnpsp.cxx 40 2 vcl/generic/print/prtsetup.cxx 24 20 vcl/generic/print/prtsetup.hxx 3 3 vcl/inc/brdwin.hxx 2 2 vcl/inc/dndevdis.hxx 7 6 vcl/inc/ilstbox.hxx 55 54 vcl/inc/printdlg.hxx 5 4 vcl/inc/salframe.hxx 18 23 vcl/inc/svdata.hxx 1 1 vcl/inc/toolbox.h 2 1 vcl/inc/unx/i18n_status.hxx 29 29 vcl/inc/window.h 9 0 vcl/source/app/salvtables.cxx 19 11 vcl/source/app/svapp.cxx 2 0 vcl/source/app/svdata.cxx 9 0 vcl/source/app/vclevent.cxx 14 14 vcl/source/control/button.cxx 3 5 vcl/source/control/combobox.cxx 4 0 vcl/source/control/ctrl.cxx 1 0 vcl/source/control/fixed.cxx 15 3 vcl/source/control/ilstbox.cxx 4 12 vcl/source/control/lstbox.cxx 12 16 vcl/source/control/tabctrl.cxx 1 1 vcl/source/edit/textview.cxx 8 15 vcl/source/edit/vclmedit.cxx 2 4 vcl/source/gdi/print3.cxx 1 0 vcl/source/window/accel.cxx 2 3 vcl/source/window/accessibility.cxx 1 1 vcl/source/window/brdwin.cxx 5 17 vcl/source/window/btndlg.cxx 15 12 vcl/source/window/builder.cxx 1 1 vcl/source/window/clipping.cxx 2 2 vcl/source/window/cursor.cxx 4 3 vcl/source/window/dialog.cxx 10 10 vcl/source/window/dlgctrl.cxx 3 3 vcl/source/window/dndevdis.cxx 8 9 vcl/source/window/dockmgr.cxx 10 6 vcl/source/window/dockwin.cxx 20 3 vcl/source/window/event.cxx 4 2 vcl/source/window/floatwin.cxx 4 2 vcl/source/window/introwin.cxx 20 15 vcl/source/window/layout.cxx 10 10 vcl/source/window/menu.cxx 3 3 vcl/source/window/menubarwindow.cxx 2 2 vcl/source/window/menufloatingwindow.cxx 11 11 vcl/source/window/mouse.cxx 6 17 vcl/source/window/msgbox.cxx 1 1 vcl/source/window/paint.cxx 45 18 vcl/source/window/printdlg.cxx 1 0 vcl/source/window/split.cxx 3 3 vcl/source/window/splitwin.cxx 18 19 vcl/source/window/stacking.cxx 1 0 vcl/source/window/syswin.cxx 2 1 vcl/source/window/tabdlg.cxx 7 12 vcl/source/window/taskpanelist.cxx 5 4 vcl/source/window/toolbox.cxx 21 22 vcl/source/window/window.cxx 16 18 vcl/source/window/window2.cxx 7 7 vcl/source/window/winproc.cxx 1 3 vcl/unx/generic/app/i18n_status.cxx 18 4 vcl/unx/generic/printer/cupsmgr.cxx 3 2 vcl/workben/icontest.cxx 1 1 vcl/workben/mtfdemo.cxx 13 6 vcl/workben/vcldemo.cxx 3 3 xmlsecurity/inc/xmlsecurity/certificatechooser.hxx 22 17 xmlsecurity/inc/xmlsecurity/certificateviewer.hxx 18 18 xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx 22 18 xmlsecurity/inc/xmlsecurity/macrosecurity.hxx 3 1 xmlsecurity/source/dialogs/certificatechooser.cxx 44 1 xmlsecurity/source/dialogs/certificateviewer.cxx 16 1 xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx 38 1 xmlsecurity/source/dialogs/macrosecurity.cxx
2015-03-09 14:29:30 +02:00
m_pLanguageFT.clear();
m_pLanguageLB.clear();
m_pExplainFT.clear();
m_pExplainLink.clear();
m_pNotInDictFT.clear();
m_pSentenceED.clear();
m_pSuggestionFT.clear();
m_pSuggestionLB.clear();
m_pIgnorePB.clear();
m_pIgnoreAllPB.clear();
m_pIgnoreRulePB.clear();
m_pAddToDictPB.clear();
m_pAddToDictMB.clear();
m_pChangePB.clear();
m_pChangeAllPB.clear();
m_pAutoCorrPB.clear();
m_pCheckGrammarCB.clear();
m_pOptionsPB.clear();
m_pUndoPB.clear();
m_pClosePB.clear();
m_pToolbar.clear();
SfxModelessDialog::dispose();
2009-10-31 00:36:06 +01:00
}
void SpellDialog::Init_Impl()
{
// initialize handler
m_pClosePB->SetClickHdl(LINK( this, SpellDialog, CancelHdl ) );
m_pChangePB->SetClickHdl(LINK( this, SpellDialog, ChangeHdl ) );
m_pChangeAllPB->SetClickHdl(LINK( this, SpellDialog, ChangeAllHdl ) );
m_pIgnorePB->SetClickHdl(LINK( this, SpellDialog, IgnoreHdl ) );
m_pIgnoreAllPB->SetClickHdl(LINK( this, SpellDialog, IgnoreAllHdl ) );
m_pIgnoreRulePB->SetClickHdl(LINK( this, SpellDialog, IgnoreAllHdl ) );
m_pUndoPB->SetClickHdl(LINK( this, SpellDialog, UndoHdl ) );
2009-10-31 00:36:06 +01:00
m_pAutoCorrPB->SetClickHdl( LINK( this, SpellDialog, ExtClickHdl ) );
m_pCheckGrammarCB->SetClickHdl( LINK( this, SpellDialog, CheckGrammarHdl ));
m_pOptionsPB->SetClickHdl( LINK( this, SpellDialog, ExtClickHdl ) );
2009-10-31 00:36:06 +01:00
m_pSuggestionLB->SetDoubleClickHdl( LINK( this, SpellDialog, DoubleClickChangeHdl ) );
2009-10-31 00:36:06 +01:00
m_pSentenceED->SetModifyHdl(LINK ( this, SpellDialog, ModifyHdl) );
m_pAddToDictMB->SetSelectHdl(LINK ( this, SpellDialog, AddToDictSelectHdl ) );
m_pAddToDictPB->SetClickHdl(LINK ( this, SpellDialog, AddToDictClickHdl ) );
m_pLanguageLB->SetSelectHdl(LINK( this, SpellDialog, LanguageSelectHdl ) );
2009-10-31 00:36:06 +01:00
m_pExplainLink->SetClickHdl( LINK( this, SpellDialog, HandleHyperlink ) );
2009-10-31 00:36:06 +01:00
// initialize language ListBox
m_pLanguageLB->SetLanguageList( SvxLanguageListFlags::SPELL_USED, false, false, true );
2009-10-31 00:36:06 +01:00
m_pSentenceED->ClearModifyFlag();
2009-10-31 00:36:06 +01:00
SvxGetChangeAllList()->clear();
}
void SpellDialog::UpdateBoxes_Impl()
{
sal_Int32 i;
m_pSuggestionLB->Clear();
2009-10-31 00:36:06 +01:00
const SpellErrorDescription* pSpellErrorDescription = m_pSentenceED->GetAlternatives();
2009-10-31 00:36:06 +01:00
LanguageType nAltLanguage = LANGUAGE_NONE;
Sequence< OUString > aNewWords;
2009-10-31 00:36:06 +01:00
bool bIsGrammarError = false;
if( pSpellErrorDescription )
{
nAltLanguage = LanguageTag::convertToLanguageType( pSpellErrorDescription->aLocale );
2009-10-31 00:36:06 +01:00
aNewWords = pSpellErrorDescription->aSuggestions;
bIsGrammarError = pSpellErrorDescription->bIsGrammarError;
m_pExplainLink->SetURL( pSpellErrorDescription->sExplanationURL );
m_pExplainFT->SetText( pSpellErrorDescription->sExplanation );
2009-10-31 00:36:06 +01:00
}
if( pSpellErrorDescription && !pSpellErrorDescription->sDialogTitle.isEmpty() )
2009-10-31 00:36:06 +01:00
{
// use this function to apply the correct image to be used...
SetTitle_Impl( nAltLanguage );
// then change the title to the one to be actually used
SetText( pSpellErrorDescription->sDialogTitle );
}
else
SetTitle_Impl( nAltLanguage );
SetSelectedLang_Impl( nAltLanguage );
int nDicts = InitUserDicts();
2009-10-31 00:36:06 +01:00
// enter alternatives
const OUString *pNewWords = aNewWords.getConstArray();
2009-10-31 00:36:06 +01:00
const sal_Int32 nSize = aNewWords.getLength();
for ( i = 0; i < nSize; ++i )
{
OUString aTmp( pNewWords[i] );
if ( LISTBOX_ENTRY_NOTFOUND == m_pSuggestionLB->GetEntryPos( aTmp ) )
2009-10-31 00:36:06 +01:00
{
m_pSuggestionLB->InsertEntry( aTmp );
m_pSuggestionLB->SetEntryFlags(m_pSuggestionLB->GetEntryCount() - 1, ListBoxEntryFlags::MultiLine);
2009-10-31 00:36:06 +01:00
}
}
if(!nSize)
m_pSuggestionLB->InsertEntry(m_sNoSuggestionsST);
m_pAutoCorrPB->Enable( nSize > 0 );
2009-10-31 00:36:06 +01:00
m_pSuggestionFT->Enable(nSize > 0);
m_pSuggestionLB->Enable(nSize > 0);
2009-10-31 00:36:06 +01:00
if( nSize )
{
m_pSuggestionLB->SelectEntryPos(0);
2009-10-31 00:36:06 +01:00
}
m_pChangePB->Enable( nSize > 0);
m_pChangeAllPB->Enable(nSize > 0);
2009-10-31 00:36:06 +01:00
bool bShowChangeAll = !bIsGrammarError;
m_pChangeAllPB->Show( bShowChangeAll );
m_pExplainFT->Show( !bShowChangeAll );
m_pLanguageLB->Enable( bShowChangeAll );
m_pIgnoreAllPB->Show( bShowChangeAll );
m_pAddToDictMB->Show( bShowChangeAll && nDicts > 1);
m_pAddToDictPB->Show( bShowChangeAll && nDicts <= 1);
m_pIgnoreRulePB->Show( !bShowChangeAll );
m_pIgnoreRulePB->Enable(pSpellErrorDescription && !pSpellErrorDescription->sRuleId.isEmpty());
m_pAutoCorrPB->Show( bShowChangeAll && rParent.HasAutoCorrection() );
bool bOldShowGrammar = m_pCheckGrammarCB->IsVisible();
bool bOldShowExplain = m_pExplainLink->IsVisible();
m_pCheckGrammarCB->Show(rParent.HasGrammarChecking());
m_pExplainLink->Show(!m_pExplainLink->GetURL().isEmpty());
if (m_pExplainFT->GetText().isEmpty())
{
m_pExplainFT->Hide();
m_pExplainLink->Hide();
}
if (bOldShowExplain != (bool) m_pExplainLink->IsVisible() || bOldShowGrammar != (bool) m_pCheckGrammarCB->IsVisible())
setOptimalLayoutSize();
2009-10-31 00:36:06 +01:00
}
2009-10-31 00:36:06 +01:00
void SpellDialog::SpellContinue_Impl(bool bUseSavedSentence, bool bIgnoreCurrentError )
2009-10-31 00:36:06 +01:00
{
//initially or after the last error of a sentence MarkNextError will fail
//then GetNextSentence() has to be called followed again by MarkNextError()
Many spelling fixes: directories a* - g*. Attempt to clean up most but certainly not all the spelling mistakes that found home in OpenOffice through decades. We could probably blame the international nature of the code but it is somewhat shameful that this wasn't done before. (cherry picked from commit a6efc99d19d533fcf53106b6667bafba4d364370) Conflicts: accessibility/bridge/org/openoffice/java/accessibility/AccessibleTextImpl.java accessibility/bridge/org/openoffice/java/accessibility/Component.java accessibility/bridge/org/openoffice/java/accessibility/Container.java accessibility/bridge/org/openoffice/java/accessibility/DescendantManager.java accessibility/bridge/org/openoffice/java/accessibility/Dialog.java accessibility/bridge/org/openoffice/java/accessibility/Frame.java accessibility/bridge/org/openoffice/java/accessibility/List.java accessibility/bridge/org/openoffice/java/accessibility/Menu.java accessibility/bridge/org/openoffice/java/accessibility/Table.java accessibility/bridge/org/openoffice/java/accessibility/Tree.java accessibility/bridge/org/openoffice/java/accessibility/Window.java accessibility/bridge/source/java/WindowsAccessBridgeAdapter.cxx accessibility/inc/accessibility/extended/AccessibleBrowseBoxBase.hxx accessibility/inc/accessibility/extended/AccessibleGridControlBase.hxx accessibility/inc/accessibility/standard/vclxaccessiblebox.hxx accessibility/source/extended/accessibleiconchoicectrlentry.cxx accessibility/source/extended/accessiblelistboxentry.cxx accessibility/source/extended/accessibletablistbox.cxx accessibility/source/extended/accessibletablistboxtable.cxx accessibility/workben/org/openoffice/accessibility/awb/canvas/Canvas.java accessibility/workben/org/openoffice/accessibility/misc/OfficeConnection.java apple_remote/AppleRemote.m autodoc/inc/ary/cpp/c_gate.hxx autodoc/inc/ary/cpp/cp_ce.hxx autodoc/inc/ary/cpp/cp_def.hxx autodoc/inc/ary/cpp/cp_type.hxx autodoc/inc/ary/doc/d_parametrized.hxx autodoc/inc/ary/idl/i_type.hxx autodoc/source/ary/inc/cross_refs.hxx autodoc/source/ary/inc/sorted_idset.hxx autodoc/source/display/html/outfile.hxx autodoc/source/display/html/pagemake.cxx autodoc/source/display/idl/hi_env.hxx autodoc/source/parser/inc/tokens/tokproct.hxx autodoc/source/parser_i/inc/s2_luidl/tokproct.hxx autodoc/source/parser_i/inc/tokens/tkp2.hxx automation/inc/automation/commtypes.hxx automation/inc/automation/simplecm.hxx automation/source/server/recorder.cxx automation/source/server/recorder.hxx automation/source/server/statemnt.cxx automation/source/simplecm/packethandler.hxx automation/source/simplecm/simplecm.cxx avmedia/source/framework/soundhandler.cxx basegfx/inc/basegfx/range/rangeexpander.hxx basic/inc/basic/sbxdef.hxx basic/source/classes/sbunoobj.cxx basic/source/classes/sbxmod.cxx basic/source/comp/dim.cxx basic/source/comp/exprgen.cxx basic/source/runtime/step1.cxx basic/source/runtime/step2.cxx basic/source/sbx/sbxint.cxx basic/source/uno/namecont.cxx basic/workben/mgrtest.cxx bean/com/sun/star/beans/LocalOfficeConnection.java bean/com/sun/star/beans/LocalOfficeWindow.java bean/com/sun/star/comp/beans/LocalOfficeConnection.java bean/com/sun/star/comp/beans/LocalOfficeWindow.java bean/com/sun/star/comp/beans/OOoBean.java bridges/inc/bridges/cpp_uno/bridge.hxx bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx bridges/source/cpp_uno/cc50_solaris_intel/except.cxx bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx bridges/source/cpp_uno/cc50_solaris_sparc/except.cxx bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx bridges/source/cpp_uno/gcc3_macosx_x86-64/uno2cpp.cxx bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx bridges/source/cpp_uno/gcc3_netbsd_intel/except.cxx bridges/source/cpp_uno/gcc3_netbsd_intel/uno2cpp.cxx bridges/source/cpp_uno/gcc3_os2_intel/cpp2uno.cxx bridges/source/cpp_uno/gcc3_os2_intel/except.cxx bridges/source/cpp_uno/gcc3_os2_intel/uno2cpp.cxx bridges/source/cpp_uno/mingw_x86-64/uno2cpp.cxx bridges/source/cpp_uno/msvc_win32_intel/except.cxx bridges/source/cpp_uno/s5abi_macosx_x86-64/except.cxx bridges/source/cpp_uno/shared/component.cxx bridges/source/jni_uno/jni_base.h bridges/source/jni_uno/jni_bridge.cxx bridges/source/jni_uno/jni_java2uno.cxx bridges/source/jni_uno/jni_uno2java.cxx canvas/inc/canvas/base/doublebitmapbase.hxx canvas/inc/canvas/base/floatbitmapbase.hxx canvas/inc/canvas/base/integerbitmapbase.hxx canvas/source/cairo/cairo_canvasbitmap.cxx canvas/source/cairo/cairo_textlayout.cxx chart2/source/controller/dialogs/ObjectNameProvider.cxx chart2/source/view/diagram/VDiagram.cxx chart2/source/view/main/ChartView.cxx cli_ure/source/native/makefile.mk cli_ure/source/uno_bridge/cli_data.cxx codemaker/source/javamaker/javatype.cxx comphelper/inc/comphelper/componentcontext.hxx comphelper/inc/comphelper/interaction.hxx comphelper/inc/comphelper/locale.hxx comphelper/inc/comphelper/string.hxx comphelper/source/container/embeddedobjectcontainer.cxx comphelper/source/misc/accessiblecontexthelper.cxx comphelper/source/misc/asyncnotification.cxx comphelper/source/misc/locale.cxx comphelper/source/misc/mediadescriptor.cxx comphelper/source/misc/numberedcollection.cxx comphelper/source/misc/proxyaggregation.cxx comphelper/source/misc/scopeguard.cxx comphelper/source/misc/sequenceashashmap.cxx configure.in connectivity/source/commontools/parameters.cxx connectivity/source/drivers/dbase/DTable.cxx connectivity/source/drivers/evoab2/NStatement.cxx connectivity/source/drivers/file/FPreparedStatement.cxx connectivity/source/drivers/jdbc/DatabaseMetaData.cxx connectivity/source/inc/flat/ETable.hxx connectivity/source/parse/sqlnode.cxx cosv/inc/cosv/persist.hxx cosv/inc/cosv/ploc_dir.hxx cosv/inc/cosv/tpl/dyn.hxx cppu/source/LogBridge/LogBridge.cxx cppu/source/uno/data.cxx cppuhelper/source/bootstrap.cxx cppuhelper/source/component_context.cxx cppuhelper/source/propshlp.cxx cppuhelper/source/servicefactory.cxx cpputools/source/registercomponent/registercomponent.cxx cui/source/customize/acccfg.cxx cui/source/dialogs/about.cxx cui/source/dialogs/commonlingui.hxx cui/source/dialogs/showcols.cxx cui/source/inc/cuihyperdlg.hxx cui/source/inc/cuitabline.hxx cui/source/options/optsave.src cui/source/tabpages/tpline.cxx cui/source/tabpages/transfrm.cxx dbaccess/source/core/api/CacheSet.cxx dbaccess/source/core/api/KeySet.cxx dbaccess/source/core/api/RowSet.cxx dbaccess/source/core/api/RowSet.hxx dbaccess/source/core/api/RowSetBase.cxx dbaccess/source/core/api/RowSetBase.hxx dbaccess/source/core/api/RowSetCache.cxx dbaccess/source/core/api/querycomposer.cxx dbaccess/source/ext/adabas/Acomponentmodule.hxx dbaccess/source/ui/app/AppControllerDnD.cxx dbaccess/source/ui/app/AppDetailView.cxx dbaccess/source/ui/browser/brwctrlr.cxx dbaccess/source/ui/browser/sbagrid.cxx dbaccess/source/ui/browser/unodatbr.cxx dbaccess/source/ui/dlg/AdabasStat.hxx dbaccess/source/ui/dlg/UserAdmin.cxx dbaccess/source/ui/dlg/directsql.cxx dbaccess/source/ui/dlg/generalpage.hxx dbaccess/source/ui/dlg/tablespage.cxx dbaccess/source/ui/inc/JoinTableView.hxx dbaccess/source/ui/inc/TableController.hxx dbaccess/source/ui/inc/UITools.hxx dbaccess/source/ui/inc/brwctrlr.hxx dbaccess/source/ui/inc/datasourcemap.hxx dbaccess/source/ui/querydesign/JoinTableView.cxx dbaccess/source/ui/querydesign/QueryDesignView.cxx dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx dbaccess/source/ui/querydesign/TableWindow.cxx dbaccess/source/ui/querydesign/querycontroller.cxx dbaccess/source/ui/relationdesign/RelationTableView.cxx dbaccess/source/ui/tabledesign/TableController.cxx desktop/source/app/app.cxx desktop/source/app/appinit.cxx desktop/source/app/langselect.cxx desktop/source/app/officeipcthread.cxx desktop/source/deployment/manager/dp_extensionmanager.cxx desktop/source/deployment/misc/dp_misc.cxx desktop/source/deployment/misc/dp_resource.cxx desktop/source/deployment/registry/dp_backend.cxx desktop/source/deployment/registry/package/dp_package.cxx desktop/source/migration/cfgfilter.cxx desktop/source/migration/migration.cxx desktop/source/splash/splash.cxx desktop/win32/source/QuickStart/QuickStart.cpp desktop/win32/source/setup/setup.cpp drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx dtrans/source/win32/clipb/MtaOleClipb.hxx dtrans/source/win32/clipb/WinClipbImpl.cxx editeng/source/editeng/editview.cxx editeng/source/editeng/impedit2.cxx editeng/source/editeng/impedit3.cxx editeng/source/editeng/impedit4.cxx editeng/source/editeng/textconv.hxx editeng/source/misc/unolingu.cxx embeddedobj/source/commonembedding/persistence.cxx embeddedobj/source/general/dummyobject.cxx embeddedobj/source/msole/olecomponent.cxx embeddedobj/source/msole/olepersist.cxx embeddedobj/test/Container1/NativeView.java extensions/source/bibliography/framectr.cxx extensions/source/macosx/spotlight/OOoContentDataParser.m extensions/source/macosx/spotlight/unzip.h extensions/source/macosx/spotlight/unzip.m extensions/source/oooimprovement/myconfigurationhelper.hxx extensions/source/propctrlr/eventhandler.cxx extensions/source/propctrlr/formcomponenthandler.cxx extensions/source/propctrlr/pcrcomponentcontext.hxx extensions/source/scanner/twain.cxx extensions/source/update/check/updatecheckconfig.hxx external/mingwheaders/mingw_atl_headers.patch extras/source/misc_config/wizard/web/layouts/source.xml.xsl fileaccess/source/FileAccess.cxx filter/inc/filter/msfilter/msocximex.hxx filter/inc/filter/msfilter/svxmsbas.hxx filter/qa/complex/filter/detection/typeDetection/Helper.java filter/source/config/cache/basecontainer.cxx filter/source/config/cache/cacheitem.hxx filter/source/config/cache/contenthandlerfactory.cxx filter/source/config/cache/filtercache.cxx filter/source/config/cache/filtercache.hxx filter/source/config/cache/filterfactory.cxx filter/source/config/cache/frameloaderfactory.cxx filter/source/config/cache/querytokenizer.hxx filter/source/config/cache/typedetection.cxx filter/source/config/cache/typedetection.hxx filter/source/config/cache/versions.hxx filter/source/config/fragments/makefile.mk filter/source/config/tools/merge/pyAltFCFGMerge filter/source/flash/swfwriter.cxx filter/source/flash/swfwriter1.cxx filter/source/msfilter/msdffimp.cxx filter/source/msfilter/msocximex.cxx filter/source/msfilter/msvbahelper.cxx filter/source/msfilter/svxmsbas.cxx filter/source/xmlfilterdetect/filterdetect.cxx filter/source/xslt/import/uof2/uof2odf.xsl filter/source/xslt/odf2xhtml/export/xhtml/body.xsl filter/source/xsltfilter/com/sun/star/comp/xsltfilter/Base64.java forms/source/xforms/convert.hxx forms/source/xforms/model.cxx fpicker/source/aqua/SalAquaFilePicker.mm fpicker/source/office/fpinteraction.cxx fpicker/source/unx/gnome/SalGtkFolderPicker.cxx fpicker/source/unx/kde4/KDE4FilePicker.cxx fpicker/source/win32/filepicker/PreviewCtrl.cxx fpicker/source/win32/filepicker/PreviewCtrl.hxx fpicker/source/win32/filepicker/VistaFilePicker.cxx fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx fpicker/source/win32/filepicker/helppopupwindow.hxx fpicker/source/win32/folderpicker/MtaFop.hxx framework/inc/classes/droptargetlistener.hxx framework/inc/classes/filtercache.hxx framework/inc/classes/filtercachedata.hxx framework/inc/classes/protocolhandlercache.hxx framework/inc/classes/servicemanager.hxx framework/inc/commands.h framework/inc/dispatch/basedispatcher.hxx framework/inc/dispatch/blankdispatcher.hxx framework/inc/dispatch/closedispatcher.hxx framework/inc/dispatch/createdispatcher.hxx framework/inc/dispatch/dispatchprovider.hxx framework/inc/dispatch/helpagentdispatcher.hxx framework/inc/dispatch/mailtodispatcher.hxx framework/inc/dispatch/menudispatcher.hxx framework/inc/dispatch/oxt_handler.hxx framework/inc/dispatch/popupmenudispatcher.hxx framework/inc/dispatch/selfdispatcher.hxx framework/inc/dispatch/servicehandler.hxx framework/inc/dispatch/startmoduledispatcher.hxx framework/inc/dispatch/systemexec.hxx framework/inc/helper/fixeddocumentproperties.hxx framework/inc/helper/ocomponentaccess.hxx framework/inc/helper/oframes.hxx framework/inc/helper/otasksenumeration.hxx framework/inc/helper/persistentwindowstate.hxx framework/inc/helper/statusindicator.hxx framework/inc/helper/statusindicatorfactory.hxx framework/inc/helper/tagwindowasmodified.hxx framework/inc/helper/titlebarupdate.hxx framework/inc/helper/vclstatusindicator.hxx framework/inc/interaction/quietinteraction.hxx framework/inc/jobs/helponstartup.hxx framework/inc/jobs/job.hxx framework/inc/jobs/jobdata.hxx framework/inc/jobs/jobexecutor.hxx framework/inc/loadstate.h framework/inc/macros/debug/assertion.hxx framework/inc/macros/debug/event.hxx framework/inc/macros/debug/filterdbg.hxx framework/inc/macros/debug/memorymeasure.hxx framework/inc/macros/debug/timemeasure.hxx framework/inc/macros/xserviceinfo.hxx framework/inc/queries.h framework/inc/recording/dispatchrecordersupplier.hxx framework/inc/services/autorecovery.hxx framework/inc/services/backingcomp.hxx framework/inc/services/contenthandlerfactory.hxx framework/inc/services/desktop.hxx framework/inc/services/detectorfactory.hxx framework/inc/services/frame.hxx framework/inc/services/frameloaderfactory.hxx framework/inc/services/layoutmanager.hxx framework/inc/services/license.hxx framework/inc/services/logindialog.hxx framework/inc/services/modulemanager.hxx framework/inc/services/pathsettings.hxx framework/inc/services/pluginframe.hxx framework/inc/services/substitutepathvars.hxx framework/inc/services/task.hxx framework/inc/services/taskcreatorsrv.hxx framework/inc/stdtypes.h framework/inc/threadhelp/fairrwlock.hxx framework/inc/threadhelp/inoncopyable.h framework/inc/threadhelp/itransactionmanager.h framework/inc/threadhelp/lockhelper.hxx framework/inc/threadhelp/readguard.hxx framework/inc/threadhelp/resetableguard.hxx framework/inc/threadhelp/transactionguard.hxx framework/inc/threadhelp/writeguard.hxx framework/inc/uifactory/uielementfactorymanager.hxx framework/inc/xml/acceleratorconfigurationreader.hxx framework/qa/complex/dispatches/checkdispatchapi.java framework/qa/complex/framework/autosave/AutoSave.java framework/qa/complex/framework/autosave/Protocol.java framework/qa/complex/framework/recovery/RecoveryTest.java framework/qa/complex/loadAllDocuments/StreamSimulator.java framework/source/accelerators/acceleratorconfiguration.cxx framework/source/accelerators/acceleratorexecute.cxx framework/source/accelerators/acceleratorexecute.hxx framework/source/accelerators/keymapping.cxx framework/source/accelerators/presethandler.cxx framework/source/application/framework.cxx framework/source/application/login.cxx framework/source/classes/framecontainer.cxx framework/source/classes/menumanager.cxx framework/source/classes/taskcreator.cxx framework/source/dispatch/closedispatcher.cxx framework/source/dispatch/dispatchprovider.cxx framework/source/dispatch/helpagentdispatcher.cxx framework/source/dispatch/interceptionhelper.cxx framework/source/dispatch/mailtodispatcher.cxx framework/source/dispatch/menudispatcher.cxx framework/source/dispatch/oxt_handler.cxx framework/source/dispatch/servicehandler.cxx framework/source/fwe/classes/framelistanalyzer.cxx framework/source/fwe/dispatch/interaction.cxx framework/source/fwe/helper/titlehelper.cxx framework/source/fwe/helper/undomanagerhelper.cxx framework/source/fwe/xml/eventsdocumenthandler.cxx framework/source/fwe/xml/statusbardocumenthandler.cxx framework/source/fwe/xml/toolboxdocumenthandler.cxx framework/source/fwi/classes/protocolhandlercache.cxx framework/source/fwi/threadhelp/lockhelper.cxx framework/source/fwi/threadhelp/transactionmanager.cxx framework/source/helper/persistentwindowstate.cxx framework/source/helper/statusindicatorfactory.cxx framework/source/helper/vclstatusindicator.cxx framework/source/inc/accelerators/acceleratorcache.hxx framework/source/inc/accelerators/acceleratorconfiguration.hxx framework/source/inc/accelerators/presethandler.hxx framework/source/inc/accelerators/storageholder.hxx framework/source/inc/loadenv/actionlockguard.hxx framework/source/inc/loadenv/loadenv.hxx framework/source/inc/loadenv/loadenvexception.hxx framework/source/inc/pattern/frame.hxx framework/source/inc/pattern/storages.hxx framework/source/inc/pattern/window.hxx framework/source/jobs/helponstartup.cxx framework/source/jobs/job.cxx framework/source/jobs/jobdata.cxx framework/source/jobs/jobdispatch.cxx framework/source/jobs/jobresult.cxx framework/source/jobs/joburl.cxx framework/source/jobs/shelljob.cxx framework/source/loadenv/loadenv.cxx framework/source/services/autorecovery.cxx framework/source/services/backingwindow.cxx framework/source/services/desktop.cxx framework/source/services/frame.cxx framework/source/services/modulemanager.cxx framework/source/services/pathsettings.cxx framework/source/services/substitutepathvars.cxx framework/source/uiconfiguration/moduleuicfgsupplier.cxx framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx framework/source/uiconfiguration/uicategorydescription.cxx framework/source/uiconfiguration/uiconfigurationmanagerimpl.cxx framework/source/uiconfiguration/windowstateconfiguration.cxx framework/source/uielement/uicommanddescription.cxx framework/source/unotypes/fwk.xml framework/source/xml/imagesdocumenthandler.cxx framework/test/test.cxx framework/test/test_componentenumeration.bas framework/test/test_statusindicatorfactory.bas framework/test/threadtest.cxx framework/test/threadtest/threadtest.cxx framework/test/typecfg/cfgview.cxx framework/test/typecfg/xml2xcd.cxx include/basegfx/polygon/b2dpolygon.hxx include/canvas/base/graphicdevicebase.hxx include/canvas/canvastools.hxx include/comphelper/configurationhelper.hxx include/comphelper/embeddedobjectcontainer.hxx include/comphelper/propagg.hxx include/comphelper/sequenceashashmap.hxx include/connectivity/sqlerror.hxx include/connectivity/sqlnode.hxx include/cppuhelper/propshlp.hxx include/editeng/AccessibleContextBase.hxx include/framework/framelistanalyzer.hxx sfx2/source/dialog/backingcomp.cxx vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx Change-Id: I2618bf83c0e30f68f23ff25f6eb466df04d34c6d
2014-04-29 19:05:05 +00:00
//MarkNextError is not initially called if the UndoEdit mode is active
2009-10-31 00:36:06 +01:00
bool bNextSentence = false;
if((!m_pSentenceED->IsUndoEditMode() && m_pSentenceED->MarkNextError( bIgnoreCurrentError, xSpell )) ||
( bNextSentence = GetNextSentence_Impl(bUseSavedSentence, m_pSentenceED->IsUndoEditMode()) && m_pSentenceED->MarkNextError( false, xSpell )))
2009-10-31 00:36:06 +01:00
{
const SpellErrorDescription* pSpellErrorDescription = m_pSentenceED->GetAlternatives();
2009-10-31 00:36:06 +01:00
if( pSpellErrorDescription )
{
UpdateBoxes_Impl();
Control* aControls[] =
{
m_pNotInDictFT,
m_pSentenceED,
m_pLanguageFT,
nullptr
2009-10-31 00:36:06 +01:00
};
sal_Int32 nIdx = 0;
do
{
aControls[nIdx]->Enable();
2009-10-31 00:36:06 +01:00
}
while(aControls[++nIdx]);
}
if( bNextSentence )
{
//remove undo if a new sentence is active
m_pSentenceED->ResetUndo();
m_pUndoPB->Enable(false);
2009-10-31 00:36:06 +01:00
}
}
}
/* Initialize, asynchronous to prevent virtual calls
from a constructor
*/
IMPL_LINK_NOARG_TYPED( SpellDialog, InitHdl, void*, void)
2009-10-31 00:36:06 +01:00
{
m_pToolbar->Disable();
SetUpdateMode( false );
2009-10-31 00:36:06 +01:00
//show or hide AutoCorrect depending on the modules abilities
m_pAutoCorrPB->Show(rParent.HasAutoCorrection());
SpellContinue_Impl();
m_pSentenceED->ResetUndo();
m_pUndoPB->Enable(false);
2009-10-31 00:36:06 +01:00
// get current language
UpdateBoxes_Impl();
// fill dictionary PopupMenu
InitUserDicts();
LockFocusChanges(true);
if( m_pChangePB->IsEnabled() )
m_pChangePB->GrabFocus();
else if( m_pIgnorePB->IsEnabled() )
m_pIgnorePB->GrabFocus();
else if( m_pClosePB->IsEnabled() )
m_pClosePB->GrabFocus();
LockFocusChanges(false);
2009-10-31 00:36:06 +01:00
//show grammar CheckBox depending on the modules abilities
m_pCheckGrammarCB->Check( rParent.IsGrammarChecking() );
SetUpdateMode( true );
Show();
2009-10-31 00:36:06 +01:00
};
IMPL_LINK_TYPED( SpellDialog, ExtClickHdl, Button *, pBtn, void )
2009-10-31 00:36:06 +01:00
{
if (m_pOptionsPB == pBtn)
2009-10-31 00:36:06 +01:00
StartSpellOptDlg_Impl();
else if (m_pAutoCorrPB == pBtn)
2009-10-31 00:36:06 +01:00
{
//get the currently selected wrong word
OUString sCurrentErrorText = m_pSentenceED->GetErrorText();
2009-10-31 00:36:06 +01:00
//get the wrong word from the XSpellAlternative
const SpellErrorDescription* pSpellErrorDescription = m_pSentenceED->GetAlternatives();
2009-10-31 00:36:06 +01:00
if( pSpellErrorDescription )
{
OUString sWrong(pSpellErrorDescription->sErrorText);
2009-10-31 00:36:06 +01:00
//if the word has not been edited in the MultiLineEdit then
//the current suggestion should be used
//if it's not the 'no suggestions' entry
if(sWrong == sCurrentErrorText &&
m_pSuggestionLB->IsEnabled() && m_pSuggestionLB->GetSelectEntryCount() > 0 &&
!m_sNoSuggestionsST.equals(m_pSuggestionLB->GetSelectEntry()))
2009-10-31 00:36:06 +01:00
{
sCurrentErrorText = m_pSuggestionLB->GetSelectEntry();
2009-10-31 00:36:06 +01:00
}
if(sWrong != sCurrentErrorText)
{
SvxPrepareAutoCorrect( sWrong, sCurrentErrorText );
LanguageType eLang = GetSelectedLang_Impl();
rParent.AddAutoCorrection( sWrong, sCurrentErrorText, eLang );
}
}
}
}
IMPL_LINK_TYPED( SpellDialog, CheckGrammarHdl, Button*, pBox, void )
2009-10-31 00:36:06 +01:00
{
rParent.SetGrammarChecking( static_cast<CheckBox*>(pBox)->IsChecked() );
Impl_Restore(true);
2009-10-31 00:36:06 +01:00
}
void SpellDialog::StartSpellOptDlg_Impl()
{
sal_uInt16 aSpellInfos[] =
{
SID_ATTR_SPELL,SID_ATTR_SPELL,
SID_SPELL_MODIFIED, SID_SPELL_MODIFIED,
SID_AUTOSPELL_CHECK, SID_AUTOSPELL_CHECK,
0
};
SfxItemSet aSet( SfxGetpApp()->GetPool(), aSpellInfos);
2009-10-31 00:36:06 +01:00
aSet.Put(SfxSpellCheckItem( xSpell, SID_ATTR_SPELL ));
VclPtr<SfxSingleTabDialog> pDlg(
VclPtr<SfxSingleTabDialog>::Create(this, aSet, "SpellOptionsDialog", "cui/ui/spelloptionsdialog.ui"));
VclPtr<SfxTabPage> pPage = SvxLinguTabPage::Create( pDlg->get_content_area(), &aSet );
static_cast<SvxLinguTabPage*>(pPage.get())->HideGroups( GROUP_MODULES );
pDlg->SetTabPage( pPage );
2009-10-31 00:36:06 +01:00
if(RET_OK == pDlg->Execute())
{
InitUserDicts();
const SfxItemSet* pOutSet = pDlg->GetOutputItemSet();
if(pOutSet)
OfaTreeOptionsDialog::ApplyLanguageOptions(*pOutSet);
}
}
namespace
{
OUString getDotReplacementString(const OUString &rErrorText, const OUString &rSuggestedReplacement)
{
OUString aString = rErrorText;
//dots are sometimes part of the spelled word but they are not necessarily part of the replacement
bool bDot = aString.endsWith(".");
2009-10-31 00:36:06 +01:00
aString = rSuggestedReplacement;
if(bDot && (aString.isEmpty() || !aString.endsWith(".")))
aString += ".";
return aString;
}
2009-10-31 00:36:06 +01:00
}
OUString SpellDialog::getReplacementString() const
{
OUString sOrigString = m_pSentenceED->GetErrorText();
OUString sReplacement(sOrigString);
if(m_pSuggestionLB->IsEnabled() &&
m_pSuggestionLB->GetSelectEntryCount()>0 &&
!m_sNoSuggestionsST.equals(m_pSuggestionLB->GetSelectEntry()))
sReplacement = m_pSuggestionLB->GetSelectEntry();
return getDotReplacementString(sOrigString, sReplacement);
}
IMPL_LINK_NOARG_TYPED(SpellDialog, DoubleClickChangeHdl, ListBox&, void)
{
ChangeHdl(nullptr);
}
IMPL_LINK_NOARG_TYPED(SpellDialog, ChangeHdl, Button*, void)
2009-10-31 00:36:06 +01:00
{
if(m_pSentenceED->IsUndoEditMode())
2009-10-31 00:36:06 +01:00
{
SpellContinue_Impl();
}
else
{
m_pSentenceED->UndoActionStart( SPELLUNDO_CHANGE_GROUP );
OUString aString = getReplacementString();
m_pSentenceED->ChangeMarkedWord(aString, GetSelectedLang_Impl());
2009-10-31 00:36:06 +01:00
SpellContinue_Impl();
bModified = false;
m_pSentenceED->UndoActionEnd();
2009-10-31 00:36:06 +01:00
}
if(!m_pChangePB->IsEnabled())
m_pIgnorePB->GrabFocus();
2009-10-31 00:36:06 +01:00
}
IMPL_LINK_NOARG_TYPED(SpellDialog, ChangeAllHdl, Button*, void)
2009-10-31 00:36:06 +01:00
{
m_pSentenceED->UndoActionStart( SPELLUNDO_CHANGE_GROUP );
OUString aString = getReplacementString();
2009-10-31 00:36:06 +01:00
LanguageType eLang = GetSelectedLang_Impl();
// add new word to ChangeAll list
OUString aOldWord( m_pSentenceED->GetErrorText() );
2009-10-31 00:36:06 +01:00
SvxPrepareAutoCorrect( aOldWord, aString );
Reference<XDictionary> aXDictionary( SvxGetChangeAllList(), UNO_QUERY );
DictionaryError nAdded = AddEntryToDic( aXDictionary,
aOldWord, true,
2009-10-31 00:36:06 +01:00
aString, eLang );
if(nAdded == DictionaryError::NONE)
2009-10-31 00:36:06 +01:00
{
SpellUndoAction_Impl* pAction = new SpellUndoAction_Impl(
SPELLUNDO_CHANGE_ADD_TO_DICTIONARY, aDialogUndoLink);
pAction->SetDictionary(aXDictionary);
pAction->SetAddedWord(aOldWord);
m_pSentenceED->AddUndoAction(pAction);
2009-10-31 00:36:06 +01:00
}
m_pSentenceED->ChangeMarkedWord(aString, eLang);
2009-10-31 00:36:06 +01:00
SpellContinue_Impl();
bModified = false;
m_pSentenceED->UndoActionEnd();
2009-10-31 00:36:06 +01:00
}
2009-10-31 00:36:06 +01:00
IMPL_LINK_TYPED( SpellDialog, IgnoreAllHdl, Button *, pButton, void )
2009-10-31 00:36:06 +01:00
{
m_pSentenceED->UndoActionStart( SPELLUNDO_CHANGE_GROUP );
2009-10-31 00:36:06 +01:00
// add word to IgnoreAll list
Reference< XDictionary > aXDictionary( SvxGetIgnoreAllList(), UNO_QUERY );
//in case the error has been changed manually it has to be restored
m_pSentenceED->RestoreCurrentError();
if (pButton == m_pIgnoreRulePB)
2009-10-31 00:36:06 +01:00
{
const SpellErrorDescription* pSpellErrorDescription = m_pSentenceED->GetAlternatives();
2009-10-31 00:36:06 +01:00
try
{
if( pSpellErrorDescription && pSpellErrorDescription->xGrammarChecker.is() )
{
pSpellErrorDescription->xGrammarChecker->ignoreRule( pSpellErrorDescription->sRuleId,
pSpellErrorDescription->aLocale );
// refresh the layout (workaround to launch a dictionary event)
aXDictionary->setActive(false);
aXDictionary->setActive(true);
2009-10-31 00:36:06 +01:00
}
}
catch( const uno::Exception& )
{
}
}
else
{
OUString sErrorText(m_pSentenceED->GetErrorText());
DictionaryError nAdded = AddEntryToDic( aXDictionary,
sErrorText, false,
OUString(), LANGUAGE_NONE );
if(nAdded == DictionaryError::NONE)
2009-10-31 00:36:06 +01:00
{
SpellUndoAction_Impl* pAction = new SpellUndoAction_Impl(
SPELLUNDO_CHANGE_ADD_TO_DICTIONARY, aDialogUndoLink);
pAction->SetDictionary(aXDictionary);
pAction->SetAddedWord(sErrorText);
m_pSentenceED->AddUndoAction(pAction);
2009-10-31 00:36:06 +01:00
}
}
SpellContinue_Impl();
bModified = false;
m_pSentenceED->UndoActionEnd();
2009-10-31 00:36:06 +01:00
}
IMPL_LINK_NOARG_TYPED(SpellDialog, UndoHdl, Button*, void)
2009-10-31 00:36:06 +01:00
{
m_pSentenceED->Undo();
if(!m_pSentenceED->GetUndoActionCount())
m_pUndoPB->Enable(false);
2009-10-31 00:36:06 +01:00
}
IMPL_LINK_TYPED( SpellDialog, DialogUndoHdl, SpellUndoAction_Impl&, rAction, void )
2009-10-31 00:36:06 +01:00
{
switch(rAction.GetId())
2009-10-31 00:36:06 +01:00
{
case SPELLUNDO_CHANGE_TEXTENGINE:
{
if(rAction.IsEnableChangePB())
m_pChangePB->Enable(false);
if(rAction.IsEnableChangeAllPB())
m_pChangeAllPB->Enable(false);
2009-10-31 00:36:06 +01:00
}
break;
case SPELLUNDO_CHANGE_NEXTERROR:
{
m_pSentenceED->MoveErrorMarkTo((sal_uInt16)rAction.GetOldErrorStart(), (sal_uInt16)rAction.GetOldErrorEnd(), false);
if(rAction.IsErrorLanguageSelected())
2009-10-31 00:36:06 +01:00
{
UpdateBoxes_Impl();
}
}
break;
case SPELLUNDO_CHANGE_ADD_TO_DICTIONARY:
{
if(rAction.GetDictionary().is())
rAction.GetDictionary()->remove(rAction.GetAddedWord());
2009-10-31 00:36:06 +01:00
}
break;
case SPELLUNDO_MOVE_ERROREND :
{
if(rAction.GetOffset() != 0)
m_pSentenceED->MoveErrorEnd(rAction.GetOffset());
2009-10-31 00:36:06 +01:00
}
break;
case SPELLUNDO_UNDO_EDIT_MODE :
{
//refill the dialog with the currently spelled sentence - throw away all changes
SpellContinue_Impl(true);
}
break;
case SPELLUNDO_ADD_IGNORE_RULE:
//undo of ignored rules is not supported
break;
}
}
void SpellDialog::Impl_Restore(bool bUseSavedSentence)
2009-10-31 00:36:06 +01:00
{
//clear the "ChangeAllList"
SvxGetChangeAllList()->clear();
//get a new sentence
m_pSentenceED->SetText(OUString());
m_pSentenceED->ResetModified();
//Resolves: fdo#39348 refill the dialog with the currently spelled sentence
SpellContinue_Impl(bUseSavedSentence);
m_pIgnorePB->SetText(m_sIgnoreOnceST);
2009-10-31 00:36:06 +01:00
}
IMPL_LINK_NOARG_TYPED(SpellDialog, IgnoreHdl, Button*, void)
2009-10-31 00:36:06 +01:00
{
if (m_sResumeST.equals(m_pIgnorePB->GetText()))
2009-10-31 00:36:06 +01:00
{
Impl_Restore(false);
2009-10-31 00:36:06 +01:00
}
else
{
//in case the error has been changed manually it has to be restored,
// since the users choice now was to ignore the error
m_pSentenceED->RestoreCurrentError();
2009-10-31 00:36:06 +01:00
// the word is being ignored
SpellContinue_Impl( false, true );
2009-10-31 00:36:06 +01:00
}
}
bool SpellDialog::Close()
2009-10-31 00:36:06 +01:00
{
// We have to call ToggleChildWindow directly; calling SfxDispatcher's
// Execute() does not work here when we are in a document with protected
// section - in that case, the cursor can move from the editable field to
// the protected area, and the slots get disabled because of
// SW_DISABLE_ON_PROTECTED_CURSOR (see FN_SPELL_GRAMMAR_DIALOG in .sdi).
SfxViewFrame::Current()->ToggleChildWindow(rParent.GetType());
return true;
2009-10-31 00:36:06 +01:00
}
2009-10-31 00:36:06 +01:00
void SpellDialog::SetSelectedLang_Impl( LanguageType nLang )
{
m_pLanguageLB->SelectLanguage( nLang );
2009-10-31 00:36:06 +01:00
}
2009-10-31 00:36:06 +01:00
LanguageType SpellDialog::GetSelectedLang_Impl() const
{
sal_Int16 nLang = m_pLanguageLB->GetSelectLanguage();
2009-10-31 00:36:06 +01:00
return nLang;
}
IMPL_LINK_TYPED(SpellDialog, LanguageSelectHdl, ListBox&, rBox, void)
2009-10-31 00:36:06 +01:00
{
//If selected language changes, then add->list should be regenerated to
//match
InitUserDicts();
2009-10-31 00:36:06 +01:00
//if currently an error is selected then search for alternatives for
//this word and fill the alternatives ListBox accordingly
OUString sError = m_pSentenceED->GetErrorText();
m_pSuggestionLB->Clear();
if(!sError.isEmpty())
2009-10-31 00:36:06 +01:00
{
LanguageType eLanguage = static_cast<SvxLanguageBox*>(&rBox)->GetSelectLanguage();
2009-10-31 00:36:06 +01:00
Reference <XSpellAlternatives> xAlt = xSpell->spell( sError, eLanguage,
Sequence< PropertyValue >() );
if( xAlt.is() )
m_pSentenceED->SetAlternatives( xAlt );
2009-10-31 00:36:06 +01:00
else
{
m_pSentenceED->ChangeMarkedWord( sError, eLanguage );
2009-10-31 00:36:06 +01:00
SpellContinue_Impl();
}
m_pSentenceED->AddUndoAction(new SpellUndoAction_Impl(SPELLUNDO_CHANGE_LANGUAGE, aDialogUndoLink));
2009-10-31 00:36:06 +01:00
}
SpellDialog::UpdateBoxes_Impl();
}
2009-10-31 00:36:06 +01:00
void SpellDialog::SetTitle_Impl(LanguageType nLang)
{
OUString sTitle = rParent.HasGrammarChecking() ? m_sTitleSpellingGrammar : m_sTitleSpelling;
sTitle = sTitle.replaceFirst( "$LANGUAGE ($LOCATION)", SvtLanguageTable::GetLanguageString(nLang) );
2009-10-31 00:36:06 +01:00
SetText( sTitle );
}
int SpellDialog::InitUserDicts()
2009-10-31 00:36:06 +01:00
{
const LanguageType nLang = m_pLanguageLB->GetSelectLanguage();
2009-10-31 00:36:06 +01:00
const Reference< XDictionary > *pDic = nullptr;
2009-10-31 00:36:06 +01:00
// get list of dictionaries
Reference< XSearchableDictionaryList > xDicList( SvxGetDictionaryList() );
2009-10-31 00:36:06 +01:00
if (xDicList.is())
{
// add active, positive dictionary to dic-list (if not already done).
// This is to ensure that there is at least on dictionary to which
// words could be added.
Reference< XDictionary > xDic( SvxGetOrCreatePosDic( xDicList ) );
if (xDic.is())
xDic->setActive( true );
2009-10-31 00:36:06 +01:00
pImpl->aDics = xDicList->getDictionaries();
}
SvtLinguConfig aCfg;
// list suitable dictionaries
bool bEnable = false;
2009-10-31 00:36:06 +01:00
const sal_Int32 nSize = pImpl->aDics.getLength();
pDic = pImpl->aDics.getConstArray();
PopupMenu* pMenu = m_pAddToDictMB->GetPopupMenu();
assert(pMenu);
pMenu->Clear();
pMenu->SetMenuFlags(MenuFlags::NoAutoMnemonics);
sal_uInt16 nItemId = 1; // menu items should be enumerated from 1 and not 0
for (sal_Int32 i = 0; i < nSize; ++i)
2009-10-31 00:36:06 +01:00
{
uno::Reference< linguistic2::XDictionary > xDicTmp( pDic[i], uno::UNO_QUERY );
if (!xDicTmp.is() || SvxGetIgnoreAllList() == xDicTmp)
2009-10-31 00:36:06 +01:00
continue;
uno::Reference< frame::XStorable > xStor( xDicTmp, uno::UNO_QUERY );
LanguageType nActLanguage = LanguageTag( xDicTmp->getLocale() ).getLanguageType();
if( xDicTmp->isActive()
&& xDicTmp->getDictionaryType() != linguistic2::DictionaryType_NEGATIVE
&& (nLang == nActLanguage || LANGUAGE_NONE == nActLanguage )
&& (!xStor.is() || !xStor->isReadonly()) )
2009-10-31 00:36:06 +01:00
{
pMenu->InsertItem( nItemId, xDicTmp->getName() );
bEnable = true;
2009-10-31 00:36:06 +01:00
uno::Reference< lang::XServiceInfo > xSvcInfo( xDicTmp, uno::UNO_QUERY );
if (xSvcInfo.is())
{
OUString aDictionaryImageUrl( aCfg.GetSpellAndGrammarContextDictionaryImage(
xSvcInfo->getImplementationName()) );
if (!aDictionaryImageUrl.isEmpty())
{
Image aImage( aDictionaryImageUrl );
pMenu->SetItemImage( nItemId, aImage );
}
}
2009-10-31 00:36:06 +01:00
++nItemId;
2009-10-31 00:36:06 +01:00
}
}
m_pAddToDictMB->Enable( bEnable );
m_pAddToDictPB->Enable( bEnable );
int nDicts = nItemId-1;
m_pAddToDictMB->Show( nDicts > 1 );
m_pAddToDictPB->Show( nDicts <= 1 );
return nDicts;
2009-10-31 00:36:06 +01:00
}
IMPL_LINK_NOARG_TYPED(SpellDialog, AddToDictClickHdl, Button*, void)
{
AddToDictionaryExecute(1, m_pAddToDictMB->GetPopupMenu());
}
IMPL_LINK_TYPED(SpellDialog, AddToDictSelectHdl, MenuButton*, pButton, void )
{
AddToDictionaryExecute(pButton->GetCurItemId(), pButton->GetPopupMenu());
}
void SpellDialog::AddToDictionaryExecute( sal_uInt16 nItemId, PopupMenu *pMenu )
2009-10-31 00:36:06 +01:00
{
m_pSentenceED->UndoActionStart( SPELLUNDO_CHANGE_GROUP );
2009-10-31 00:36:06 +01:00
//GetErrorText() returns the current error even if the text is already
//manually changed
const OUString aNewWord = m_pSentenceED->GetErrorText();
OUString aDicName ( pMenu->GetItemText( nItemId ) );
uno::Reference< linguistic2::XDictionary > xDic;
uno::Reference< linguistic2::XSearchableDictionaryList > xDicList( SvxGetDictionaryList() );
if (xDicList.is())
xDic = xDicList->getDictionaryByName( aDicName );
2009-10-31 00:36:06 +01:00
DictionaryError nAddRes = DictionaryError::UNKNOWN;
2009-10-31 00:36:06 +01:00
if (xDic.is())
{
nAddRes = AddEntryToDic( xDic, aNewWord, false, OUString(), LANGUAGE_NONE );
// save modified user-dictionary if it is persistent
uno::Reference< frame::XStorable > xSavDic( xDic, uno::UNO_QUERY );
if (xSavDic.is())
xSavDic->store();
2009-10-31 00:36:06 +01:00
if (nAddRes == DictionaryError::NONE)
2009-10-31 00:36:06 +01:00
{
SpellUndoAction_Impl* pAction = new SpellUndoAction_Impl(
SPELLUNDO_CHANGE_ADD_TO_DICTIONARY, aDialogUndoLink);
pAction->SetDictionary( xDic );
pAction->SetAddedWord( aNewWord );
m_pSentenceED->AddUndoAction( pAction );
2009-10-31 00:36:06 +01:00
}
// failed because there is already an entry?
if (DictionaryError::NONE != nAddRes && xDic->getEntry( aNewWord ).is())
nAddRes = DictionaryError::NONE;
2009-10-31 00:36:06 +01:00
}
if (DictionaryError::NONE != nAddRes)
2009-10-31 00:36:06 +01:00
{
SvxDicError( this, nAddRes );
return; // don't continue
2009-10-31 00:36:06 +01:00
}
// go on
SpellContinue_Impl();
m_pSentenceED->UndoActionEnd();
2009-10-31 00:36:06 +01:00
}
IMPL_LINK_TYPED(SpellDialog, ModifyHdl, Edit&, rEd, void)
2009-10-31 00:36:06 +01:00
{
if (m_pSentenceED == &rEd)
2009-10-31 00:36:06 +01:00
{
bModified = true;
m_pSuggestionLB->SetNoSelection();
m_pSuggestionLB->Disable();
OUString sNewText( m_pSentenceED->GetText() );
m_pAutoCorrPB->Enable( sNewText != m_pSentenceED->GetText() );
2009-10-31 00:36:06 +01:00
SpellUndoAction_Impl* pSpellAction = new SpellUndoAction_Impl(SPELLUNDO_CHANGE_TEXTENGINE, aDialogUndoLink);
if(!m_pChangeAllPB->IsEnabled())
2009-10-31 00:36:06 +01:00
{
m_pChangeAllPB->Enable();
2009-10-31 00:36:06 +01:00
pSpellAction->SetEnableChangeAllPB();
}
if(!m_pChangePB->IsEnabled())
2009-10-31 00:36:06 +01:00
{
m_pChangePB->Enable();
2009-10-31 00:36:06 +01:00
pSpellAction->SetEnableChangePB();
}
m_pSentenceED->AddUndoAction(pSpellAction);
2009-10-31 00:36:06 +01:00
}
};
IMPL_LINK_NOARG_TYPED(SpellDialog, CancelHdl, Button*, void)
2009-10-31 00:36:06 +01:00
{
//apply changes and ignored text parts first - if there are any
rParent.ApplyChangedSentence(m_pSentenceED->CreateSpellPortions(), false);
2009-10-31 00:36:06 +01:00
Close();
}
bool SpellDialog::Notify( NotifyEvent& rNEvt )
2009-10-31 00:36:06 +01:00
{
/* #i38338#
* FIXME: LoseFocus and GetFocus are signals from vcl that
* a window actually got/lost the focus, it never should be
* forwarded from another window, that is simply wrong.
* FIXME: overriding the virtual methods GetFocus and LoseFocus
2009-10-31 00:36:06 +01:00
* in SpellDialogChildWindow by making them pure is at least questionable.
* The only sensible thing would be to call the new Method differently,
* e.g. DialogGot/LostFocus or so.
*/
if( IsVisible() && !bFocusLocked )
{
if( rNEvt.GetType() == MouseNotifyEvent::GETFOCUS )
2009-10-31 00:36:06 +01:00
{
//notify the child window of the focus change
rParent.GetFocus();
}
else if( rNEvt.GetType() == MouseNotifyEvent::LOSEFOCUS )
2009-10-31 00:36:06 +01:00
{
//notify the child window of the focus change
rParent.LoseFocus();
}
}
return SfxModelessDialog::Notify(rNEvt);
}
2009-10-31 00:36:06 +01:00
void SpellDialog::InvalidateDialog()
{
if( bFocusLocked )
return;
m_pIgnorePB->SetText(m_sResumeST);
vcl::Window* aDisableArr[] =
{
m_pNotInDictFT,
m_pSentenceED,
m_pSuggestionFT,
m_pSuggestionLB,
m_pLanguageFT,
m_pLanguageLB,
m_pIgnoreAllPB,
m_pIgnoreRulePB,
m_pAddToDictMB,
m_pAddToDictPB,
m_pChangePB,
m_pChangeAllPB,
m_pAutoCorrPB,
m_pUndoPB,
nullptr
};
2009-10-31 00:36:06 +01:00
sal_Int16 i = 0;
while(aDisableArr[i])
{
aDisableArr[i]->Enable(false);
2009-10-31 00:36:06 +01:00
i++;
}
SfxModelessDialog::Deactivate();
}
bool SpellDialog::GetNextSentence_Impl(bool bUseSavedSentence, bool bRecheck)
2009-10-31 00:36:06 +01:00
{
bool bRet = false;
if(!bUseSavedSentence)
2009-10-31 00:36:06 +01:00
{
//apply changes and ignored text parts
rParent.ApplyChangedSentence(m_pSentenceED->CreateSpellPortions(), bRecheck);
2009-10-31 00:36:06 +01:00
}
m_pSentenceED->ResetIgnoreErrorsAt();
m_pSentenceED->ResetModified();
SpellPortions aSentence = bUseSavedSentence ? m_aSavedSentence : rParent.GetNextWrongSentence( bRecheck );
2009-10-31 00:36:06 +01:00
if(!bUseSavedSentence)
m_aSavedSentence = aSentence;
bool bHasReplaced = false;
2012-01-21 19:57:19 +01:00
while(!aSentence.empty())
2009-10-31 00:36:06 +01:00
{
//apply all changes that are already part of the "ChangeAllList"
//returns true if the list still contains errors after the changes have been applied
if(!ApplyChangeAllList_Impl(aSentence, bHasReplaced))
{
rParent.ApplyChangedSentence(aSentence, bRecheck);
aSentence = rParent.GetNextWrongSentence( bRecheck );
2009-10-31 00:36:06 +01:00
}
else
break;
}
2012-01-21 19:57:19 +01:00
if(!aSentence.empty())
2009-10-31 00:36:06 +01:00
{
SpellPortions::iterator aStart = aSentence.begin();
OUString sText;
2009-10-31 00:36:06 +01:00
while(aStart != aSentence.end())
{
// hidden text has to be ignored
if(!aStart->bIsHidden)
sText += aStart->sText;
2011-01-01 21:21:56 +00:00
++aStart;
2009-10-31 00:36:06 +01:00
}
m_pSentenceED->SetText(sText);
2009-10-31 00:36:06 +01:00
aStart = aSentence.begin();
sal_Int32 nStartPosition = 0;
sal_Int32 nEndPosition = 0;
while(aStart != aSentence.end())
{
// hidden text has to be ignored
if(!aStart->bIsHidden)
{
nEndPosition += aStart->sText.getLength();
if(aStart->xAlternatives.is())
{
uno::Reference< container::XNamed > xNamed( aStart->xAlternatives, uno::UNO_QUERY );
OUString sServiceName;
2009-10-31 00:36:06 +01:00
if( xNamed.is() )
sServiceName = xNamed->getName();
SpellErrorDescription aDesc( false, aStart->xAlternatives->getWord(),
aStart->xAlternatives->getLocale(), aStart->xAlternatives->getAlternatives(), nullptr);
m_pSentenceED->SetAttrib( SpellErrorAttrib(aDesc), 0, (sal_uInt16) nStartPosition, (sal_uInt16) nEndPosition );
2009-10-31 00:36:06 +01:00
}
else if(aStart->bIsGrammarError )
{
beans::PropertyValues aProperties = aStart->aGrammarError.aProperties;
OUString sFullCommentURL;
sal_Int32 i = 0;
while ( sFullCommentURL.isEmpty() && i < aProperties.getLength() )
{
if ( aProperties[i].Name == "FullCommentURL" )
{
uno::Any aValue = aProperties[i].Value;
aValue >>= sFullCommentURL;
}
++i;
}
2009-10-31 00:36:06 +01:00
uno::Reference< lang::XServiceInfo > xInfo( aStart->xGrammarChecker, uno::UNO_QUERY );
SpellErrorDescription aDesc( true,
aStart->sText,
LanguageTag::convertToLocale( aStart->eLanguage ),
2009-10-31 00:36:06 +01:00
aStart->aGrammarError.aSuggestions,
aStart->xGrammarChecker,
&aStart->sDialogTitle,
&aStart->aGrammarError.aFullComment,
&aStart->aGrammarError.aRuleIdentifier,
&sFullCommentURL );
m_pSentenceED->SetAttrib( SpellErrorAttrib(aDesc), 0, (sal_uInt16) nStartPosition, (sal_uInt16) nEndPosition );
2009-10-31 00:36:06 +01:00
}
if(aStart->bIsField)
m_pSentenceED->SetAttrib( SpellBackgroundAttrib(COL_LIGHTGRAY), 0, (sal_uInt16) nStartPosition, (sal_uInt16) nEndPosition );
m_pSentenceED->SetAttrib( SpellLanguageAttrib(aStart->eLanguage), 0, (sal_uInt16) nStartPosition, (sal_uInt16) nEndPosition );
2009-10-31 00:36:06 +01:00
nStartPosition = nEndPosition;
}
2011-01-01 21:21:56 +00:00
++aStart;
2009-10-31 00:36:06 +01:00
}
//the edit field needs to be modified to apply the change from the ApplyChangeAllList
if(!bHasReplaced)
m_pSentenceED->ClearModifyFlag();
m_pSentenceED->ResetUndo();
m_pUndoPB->Enable(false);
2009-10-31 00:36:06 +01:00
bRet = nStartPosition > 0;
}
return bRet;
}
/*-------------------------------------------------------------------------
replace errors that have a replacement in the ChangeAllList
2009-10-31 00:36:06 +01:00
returns false if the result doesn't contain errors after the replacement
-----------------------------------------------------------------------*/
bool SpellDialog::ApplyChangeAllList_Impl(SpellPortions& rSentence, bool &bHasReplaced)
{
bHasReplaced = false;
bool bRet = true;
SpellPortions::iterator aStart = rSentence.begin();
Reference<XDictionary> xChangeAll( SvxGetChangeAllList(), UNO_QUERY );
if(!xChangeAll->getCount())
return bRet;
bRet = false;
while(aStart != rSentence.end())
{
if(aStart->xAlternatives.is())
{
const OUString &rString = aStart->sText;
Reference<XDictionaryEntry> xEntry = xChangeAll->getEntry(rString);
2009-10-31 00:36:06 +01:00
if(xEntry.is())
{
aStart->sText = getDotReplacementString(rString, xEntry->getReplacementText());
aStart->xAlternatives = nullptr;
2009-10-31 00:36:06 +01:00
bHasReplaced = true;
}
else
bRet = true;
}
else if( aStart->bIsGrammarError )
bRet = true;
2011-01-01 21:21:56 +00:00
++aStart;
2009-10-31 00:36:06 +01:00
}
return bRet;
}
SentenceEditWindow_Impl::SentenceEditWindow_Impl(vcl::Window * pParent, WinBits nBits)
: VclMultiLineEdit(pParent, nBits)
, m_nErrorStart(0)
, m_nErrorEnd(0)
, m_bIsUndoEditMode(false)
{
DisableSelectionOnFocus();
}
SentenceEditWindow_Impl::~SentenceEditWindow_Impl()
{
disposeOnce();
}
VCL_BUILDER_DECL_FACTORY(SentenceEditWindow)
{
(void)rMap;
rRet = VclPtr<SentenceEditWindow_Impl>::Create(pParent, WB_BORDER|WB_VSCROLL|WB_IGNORETAB);
}
/*-------------------------------------------------------------------------
2009-10-31 00:36:06 +01:00
The selection before inputting a key may have a range or not
and it may be inside or outside of field or error attributes.
A range may include the attribute partially, completely or together
with surrounding text. It may also contain more than one attribute
or no attribute at all.
Depending on this starting conditions some actions are necessary:
Attempts to delete a field are only allowed if the selection is the same
as the field's selection. Otherwise the field has to be selected and the key
input action has to be skipped.
Input of text at the start of the field requires the field attribute to be
corrected - it is not allowed to grow.
In case of errors the appending of text should grow the error attribute because
that is what the user usually wants to do.
Backspace at the start of the attribute requires to find out if a field ends
directly in front of the cursor position. In case of a field this attribute has to be
selected otherwise the key input method is allowed.
All changes outside of the error attributes switch the dialog mode to a "Undo edit" state that
removes all visible attributes and switches off further attribute checks.
Undo in this restarts the dialog with a current sentence newly presented.
All changes to the sentence are undone including the ones before the "Undo edit state" has been reached
We end up with 9 types of selection
1 (LEFT_NO) - no range, start of attribute - can also be 3 at the same time
2 (INSIDE_NO) - no range, inside of attribute
3 (RIGHT_NO) - no range, end of attribute - can also be 1 at the same time
4 (FULL) - range, same as attribute
5 (INSIDE_YES) - range, inside of the attribute
6 (BRACE)- range, from outside of the attribute to the inside or
including the complete attribute and something outside,
maybe more than one attribute
7 (OUTSIDE_NO) - no range, not at an attribute
8 (OUTSIDE_YES) - range, completely outside of all attributes
What has to be done depending on the attribute type involved
possible actions: UE - Undo edit mode
CO - Continue, no additional action is required
FS - Field has to be completely selected
EX - The attribute has to be expanded to include the added text
1 - backspace delete any other
UE on field FS on error CO on field FS on error CO
2 - on field FS on error C
3 - backspace delete any other
on field FS on error CO UE on field UE on error EX
if 1 and 3 happen to apply both then backspace and other handling is 1 delete is 3
4 - on field UE and on error CO
5 - on field FS and on error CO
6 - on field FS and on error UE
7 - UE
8 - UE
-----------------------------------------------------------------------*/
#define INVALID 0
#define LEFT_NO 1
#define INSIDE_NO 2
#define RIGHT_NO 3
#define FULL 4
#define INSIDE_YES 5
#define BRACE 6
#define OUTSIDE_NO 7
#define OUTSIDE_YES 8
#define ACTION_UNDOEDIT 0
#define ACTION_CONTINUE 1
#define ACTION_SELECTFIELD 2
#define ACTION_EXPAND 3
bool SentenceEditWindow_Impl::PreNotify( NotifyEvent& rNEvt )
2009-10-31 00:36:06 +01:00
{
bool bChange = false;
if(rNEvt.GetType() == MouseNotifyEvent::KEYINPUT)
2009-10-31 00:36:06 +01:00
{
const KeyEvent& rKeyEvt = *rNEvt.GetKeyEvent();
bChange = TextEngine::DoesKeyChangeText( rKeyEvt );
if(bChange && !IsUndoEditMode() &&
rKeyEvt.GetKeyCode().GetCode() != KEY_TAB)
{
TextEngine* pTextEngine = GetTextEngine();
TextView* pTextView = pTextEngine->GetActiveView();
const TextSelection& rCurrentSelection = pTextView->GetSelection();
//determine if the selection contains a field
bool bHasFieldLeft = false;
bool bHasErrorLeft = false;
bool bHasRange = rCurrentSelection.HasRange();
sal_uInt8 nSelectionType = 0; // invalid type!
TextPaM aCursor(rCurrentSelection.GetStart());
const TextCharAttrib* pBackAttr = pTextEngine->FindCharAttrib( aCursor, TEXTATTR_SPELL_BACKGROUND );
const TextCharAttrib* pErrorAttr = pTextEngine->FindCharAttrib( aCursor, TEXTATTR_SPELL_ERROR );
const TextCharAttrib* pBackAttrLeft = nullptr;
const TextCharAttrib* pErrorAttrLeft = nullptr;
2009-10-31 00:36:06 +01:00
bool bHasField = pBackAttr != nullptr && (bHasRange || pBackAttr->GetEnd() > aCursor.GetIndex());
bool bHasError = pErrorAttr != nullptr && (bHasRange || pErrorAttr->GetEnd() > aCursor.GetIndex());
2009-10-31 00:36:06 +01:00
if(bHasRange)
{
if(pBackAttr &&
pBackAttr->GetStart() == rCurrentSelection.GetStart().GetIndex() &&
pBackAttr->GetEnd() == rCurrentSelection.GetEnd().GetIndex())
{
nSelectionType = FULL;
}
else if(pErrorAttr &&
pErrorAttr->GetStart() <= rCurrentSelection.GetStart().GetIndex() &&
pErrorAttr->GetEnd() >= rCurrentSelection.GetEnd().GetIndex())
{
nSelectionType = INSIDE_YES;
}
else
{
nSelectionType = bHasField||bHasError ? BRACE : OUTSIDE_NO;
while(aCursor.GetIndex() < rCurrentSelection.GetEnd().GetIndex())
{
++aCursor.GetIndex();
const TextCharAttrib* pIntBackAttr = pTextEngine->FindCharAttrib( aCursor, TEXTATTR_SPELL_BACKGROUND );
const TextCharAttrib* pIntErrorAttr = pTextEngine->FindCharAttrib( aCursor, TEXTATTR_SPELL_ERROR );
//if any attr has been found then BRACE
if(pIntBackAttr || pIntErrorAttr)
nSelectionType = BRACE;
//the field has to be selected
if(pIntBackAttr && !pBackAttr)
pBackAttr = pIntBackAttr;
bHasField |= pIntBackAttr != nullptr;
2009-10-31 00:36:06 +01:00
}
}
}
else
{
//no range selection: then 1 2 3 and 8 are possible
const TextCharAttrib* pCurAttr = pBackAttr ? pBackAttr : pErrorAttr;
if(pCurAttr)
{
nSelectionType = pCurAttr->GetStart() == rCurrentSelection.GetStart().GetIndex() ?
LEFT_NO : pCurAttr->GetEnd() == rCurrentSelection.GetEnd().GetIndex() ? RIGHT_NO : INSIDE_NO;
}
else
nSelectionType = OUTSIDE_NO;
bHasFieldLeft = pBackAttr && pBackAttr->GetEnd() == aCursor.GetIndex();
if(bHasFieldLeft)
{
pBackAttrLeft = pBackAttr;
pBackAttr = nullptr;
2009-10-31 00:36:06 +01:00
}
bHasErrorLeft = pErrorAttr && pErrorAttr->GetEnd() == aCursor.GetIndex();
if(bHasErrorLeft)
{
pErrorAttrLeft = pErrorAttr;
pErrorAttr = nullptr;
2009-10-31 00:36:06 +01:00
}
//check previous position if this exists
//that is a redundant in the case the attribute found above already is on the left cursor side
2009-10-31 00:36:06 +01:00
//but it's o.k. for two errors/fields side by side
if(aCursor.GetIndex())
{
--aCursor.GetIndex();
pBackAttrLeft = pTextEngine->FindCharAttrib( aCursor, TEXTATTR_SPELL_BACKGROUND );
pErrorAttrLeft = pTextEngine->FindCharAttrib( aCursor, TEXTATTR_SPELL_ERROR );
bHasFieldLeft = pBackAttrLeft !=nullptr;
bHasErrorLeft = pErrorAttrLeft != nullptr;
2009-10-31 00:36:06 +01:00
++aCursor.GetIndex();
}
}
//Here we have to determine if the error found is the one currently active
bool bIsErrorActive = (pErrorAttr && pErrorAttr->GetStart() == m_nErrorStart) ||
(pErrorAttrLeft && pErrorAttrLeft->GetStart() == m_nErrorStart);
SAL_WARN_IF(
nSelectionType == INVALID, "cui.dialogs",
"selection type not set");
2009-10-31 00:36:06 +01:00
const vcl::KeyCode& rKeyCode = rKeyEvt.GetKeyCode();
2009-10-31 00:36:06 +01:00
bool bDelete = rKeyCode.GetCode() == KEY_DELETE;
bool bBackspace = rKeyCode.GetCode() == KEY_BACKSPACE;
sal_Int8 nAction = ACTION_CONTINUE;
switch(nSelectionType)
{
// 1 - backspace delete any other
// UE on field FS on error CO on field FS on error CO
case LEFT_NO :
if(bBackspace)
{
nAction = bHasFieldLeft ? ACTION_SELECTFIELD : ACTION_UNDOEDIT;
//to force the use of pBackAttrLeft
pBackAttr = nullptr;
2009-10-31 00:36:06 +01:00
}
else if(bDelete)
nAction = bHasField ? ACTION_SELECTFIELD : ACTION_CONTINUE;
else
nAction = bHasError && !aCursor.GetIndex() ? ACTION_CONTINUE :
bHasError ? ACTION_EXPAND : bHasErrorLeft ? ACTION_CONTINUE : ACTION_UNDOEDIT;
break;
// 2 - on field FS on error C
case INSIDE_NO :
nAction = bHasField ? ACTION_SELECTFIELD :
bIsErrorActive ? ACTION_CONTINUE : ACTION_UNDOEDIT;
break;
// 3 - backspace delete any other
// on field FS on error CO UE on field UE on error EX
case RIGHT_NO :
if(bBackspace)
nAction = bHasFieldLeft ? ACTION_SELECTFIELD : ACTION_CONTINUE;
else if(bDelete)
nAction = bHasFieldLeft && bHasError ? ACTION_CONTINUE : ACTION_UNDOEDIT;
else
nAction = bHasFieldLeft && bHasError ? ACTION_EXPAND :
bHasError ? ACTION_CONTINUE : bHasErrorLeft ? ACTION_EXPAND :ACTION_UNDOEDIT;
break;
// 4 - on field UE and on error CO
case FULL :
nAction = ACTION_UNDOEDIT;
2009-10-31 00:36:06 +01:00
break;
// 5 - on field FS and on error CO
case INSIDE_YES :
nAction = bHasField ? ACTION_SELECTFIELD : ACTION_CONTINUE;
break;
// 6 - on field FS and on error UE
case BRACE :
nAction = bHasField ? ACTION_SELECTFIELD : ACTION_UNDOEDIT;
2009-10-31 00:36:06 +01:00
break;
// 7 - UE
// 8 - UE
case OUTSIDE_NO :
case OUTSIDE_YES:
nAction = ACTION_UNDOEDIT;
break;
}
//save the current paragraph
sal_Int32 nCurrentLen = GetText().getLength();
2009-10-31 00:36:06 +01:00
if(nAction != ACTION_SELECTFIELD)
pTextView->GetWindow()->KeyInput(rKeyEvt);
else
{
const TextCharAttrib* pCharAttr = pBackAttr ? pBackAttr : pBackAttrLeft;
if(pCharAttr)
{
TextPaM aStart(0, pCharAttr->GetStart());
TextPaM aEnd(0, pCharAttr->GetEnd());
TextSelection aNewSel(aStart, aEnd);
pTextView->SetSelection( aNewSel);
}
}
if(nAction == ACTION_EXPAND)
{
DBG_ASSERT(pErrorAttrLeft || pErrorAttr, "where is the error");
//text has been added on the right and only the 'error attribute has to be corrected
if(pErrorAttrLeft)
{
std::unique_ptr<TextAttrib> pNewError(pErrorAttrLeft->GetAttr().Clone());
const sal_Int32 nStart = pErrorAttrLeft->GetStart();
sal_Int32 nEnd = pErrorAttrLeft->GetEnd();
2009-10-31 00:36:06 +01:00
pTextEngine->RemoveAttrib( 0, *pErrorAttrLeft );
SetAttrib( *pNewError, 0, nStart, ++nEnd );
//only active errors move the mark
if(bIsErrorActive)
{
bool bGrammar = static_cast<const SpellErrorAttrib&>(*pNewError).GetErrorDescription().bIsGrammarError;
MoveErrorMarkTo(nStart, nEnd, bGrammar);
}
}
//text has been added on the left then the error attribute has to be expanded and the
//field attribute on the right - if any - has to be contracted
else if(pErrorAttr)
{
//determine the change
sal_Int32 nAddedChars = GetText().getLength() - nCurrentLen;
2009-10-31 00:36:06 +01:00
std::unique_ptr<TextAttrib> pNewError(pErrorAttr->GetAttr().Clone());
sal_Int32 nStart = pErrorAttr->GetStart();
sal_Int32 nEnd = pErrorAttr->GetEnd();
2009-10-31 00:36:06 +01:00
pTextEngine->RemoveAttrib( 0, *pErrorAttr );
nStart = nStart - nAddedChars;
2009-10-31 00:36:06 +01:00
SetAttrib( *pNewError, 0, nStart - nAddedChars, nEnd );
//only if the error is active the mark is moved here
if(bIsErrorActive)
{
bool bGrammar = static_cast<const SpellErrorAttrib&>(*pNewError).GetErrorDescription().bIsGrammarError;
MoveErrorMarkTo(nStart, nEnd, bGrammar);
}
pNewError.reset();
2009-10-31 00:36:06 +01:00
if(pBackAttrLeft)
{
std::unique_ptr<TextAttrib> pNewBack(pBackAttrLeft->GetAttr().Clone());
const sal_Int32 _nStart = pBackAttrLeft->GetStart();
const sal_Int32 _nEnd = pBackAttrLeft->GetEnd();
2009-10-31 00:36:06 +01:00
pTextEngine->RemoveAttrib( 0, *pBackAttrLeft );
SetAttrib( *pNewBack, 0, _nStart, _nEnd - nAddedChars);
}
}
}
else if(nAction == ACTION_UNDOEDIT)
{
SetUndoEditMode(true);
}
//make sure the error positions are correct after text changes
//the old attribute may have been deleted
//all changes inside of the current error leave the error attribute at the current
//start position
if(!IsUndoEditMode() && bIsErrorActive)
{
const TextCharAttrib* pFontColor = pTextEngine->FindCharAttrib( aCursor, TEXTATTR_FONTCOLOR );
const TextCharAttrib* pErrorAttrib = pTextEngine->FindCharAttrib( TextPaM(0, m_nErrorStart), TEXTATTR_SPELL_ERROR );
2009-10-31 00:36:06 +01:00
if(pFontColor && pErrorAttrib )
{
m_nErrorStart = pFontColor->GetStart();
m_nErrorEnd = pFontColor->GetEnd();
if(pErrorAttrib->GetStart() != m_nErrorStart || pErrorAttrib->GetEnd() != m_nErrorEnd)
{
std::unique_ptr<TextAttrib> pNewError(pErrorAttrib->GetAttr().Clone());
2009-10-31 00:36:06 +01:00
pTextEngine->RemoveAttrib( 0, *pErrorAttr );
SetAttrib( *pNewError, 0, m_nErrorStart, m_nErrorEnd );
}
}
}
//this is not a modification anymore
if(nAction != ACTION_SELECTFIELD && !m_bIsUndoEditMode)
CallModifyLink();
}
else
bChange = false;
}
else if (rNEvt.GetType() == MouseNotifyEvent::GETFOCUS && m_xToolbar)
{
m_xToolbar->Enable();
}
else if(rNEvt.GetType() == MouseNotifyEvent::LOSEFOCUS && m_xToolbar)
{
m_xToolbar->Disable();
}
return bChange || VclMultiLineEdit::PreNotify(rNEvt);
2009-10-31 00:36:06 +01:00
}
void SentenceEditWindow_Impl::Init(VclPtr<ToolBox> &rToolbar)
{
m_xToolbar = rToolbar;
m_xToolbar->SetSelectHdl(LINK(this,SentenceEditWindow_Impl,ToolbarHdl));
}
IMPL_LINK_NOARG_TYPED(SentenceEditWindow_Impl, ToolbarHdl, ToolBox *, void)
{
const sal_uInt16 nCurItemId = m_xToolbar->GetCurItemId();
if (nCurItemId == m_xToolbar->GetItemId("paste"))
{
Paste();
CallModifyLink();
}
else if (nCurItemId == m_xToolbar->GetItemId("insert"))
{
if (Edit::GetGetSpecialCharsFunction())
{
OUString aChars = Edit::GetGetSpecialCharsFunction()( this, GetFont() );
if (!aChars.isEmpty())
{
ReplaceSelected(aChars);
CallModifyLink();
}
}
}
}
void SentenceEditWindow_Impl::dispose()
{
m_xToolbar.clear();
VclMultiLineEdit::dispose();
}
bool SentenceEditWindow_Impl::MarkNextError( bool bIgnoreCurrentError, const css::uno::Reference<css::linguistic2::XSpellChecker1>& xSpell )
2009-10-31 00:36:06 +01:00
{
if (bIgnoreCurrentError)
m_aIgnoreErrorsAt.insert( m_nErrorStart );
2009-10-31 00:36:06 +01:00
ExtTextEngine* pTextEngine = GetTextEngine();
const sal_Int32 nTextLen = pTextEngine->GetTextLen(0);
2009-10-31 00:36:06 +01:00
if(m_nErrorEnd >= nTextLen - 1)
return false;
//if it's not already modified the modified flag has to be reset at the end of the marking
2009-10-31 00:36:06 +01:00
bool bModified = IsModified();
bool bRet = false;
const sal_uInt16 nOldErrorStart = m_nErrorStart;
const sal_uInt16 nOldErrorEnd = m_nErrorEnd;
2009-10-31 00:36:06 +01:00
//create a cursor behind the end of the last error
//- or at 0 at the start of the sentence
TextPaM aCursor(0, m_nErrorEnd ? m_nErrorEnd + 1 : 0);
//search for SpellErrorAttrib
const TextCharAttrib* pNextError = nullptr;
2009-10-31 00:36:06 +01:00
//iterate over the text and search for the next error that maybe has
//to be replace by a ChangeAllList replacement
bool bGrammarError = false;
while(aCursor.GetIndex() < nTextLen)
{
while(aCursor.GetIndex() < nTextLen &&
nullptr == (pNextError = pTextEngine->FindCharAttrib( aCursor, TEXTATTR_SPELL_ERROR)))
2009-10-31 00:36:06 +01:00
{
++aCursor.GetIndex();
}
// maybe the error found here is already in the ChangeAllList and has to be replaced
Reference<XDictionary> xChangeAll( SvxGetChangeAllList(), UNO_QUERY );
Reference<XDictionaryEntry> xEntry;
const SpellErrorDescription* pSpellErrorDescription = nullptr;
2009-10-31 00:36:06 +01:00
if(pNextError)
{
pSpellErrorDescription = &static_cast<const SpellErrorAttrib&>(pNextError->GetAttr()).GetErrorDescription();
bGrammarError = pSpellErrorDescription->bIsGrammarError;
m_nErrorStart = pNextError->GetStart();
m_nErrorEnd = pNextError->GetEnd();
2009-10-31 00:36:06 +01:00
}
if(xChangeAll->getCount() && pSpellErrorDescription &&
(xEntry = xChangeAll->getEntry( pSpellErrorDescription->sErrorText )).is())
{
OUString sReplacement(getDotReplacementString(GetErrorText(), xEntry->getReplacementText()));
ChangeMarkedWord(sReplacement, LanguageTag::convertToLanguageType( pSpellErrorDescription->aLocale ));
aCursor.GetIndex() += xEntry->getReplacementText().getLength();
// maybe the error found here is already added to the dictionary and has to be ignored
} else if(pSpellErrorDescription && !bGrammarError && xSpell->isValid( GetErrorText(), LanguageTag::convertToLanguageType( pSpellErrorDescription->aLocale ), Sequence< PropertyValue >() )) {
++aCursor.GetIndex();
2009-10-31 00:36:06 +01:00
}
else
break;
}
//if an attrib has been found search for the end of the error string
if(aCursor.GetIndex() < nTextLen)
{
m_nErrorStart = aCursor.GetIndex();
m_nErrorEnd = pNextError->GetEnd();
MoveErrorMarkTo(m_nErrorStart, m_nErrorEnd, bGrammarError);
bRet = true;
//add an undo action
SpellUndoAction_Impl* pAction = new SpellUndoAction_Impl(
SPELLUNDO_CHANGE_NEXTERROR, GetSpellDialog()->aDialogUndoLink);
pAction->SetErrorMove(m_nErrorStart, m_nErrorEnd, nOldErrorStart, nOldErrorEnd);
const SpellErrorAttrib* pOldAttrib = static_cast<const SpellErrorAttrib*>(
pTextEngine->FindAttrib( TextPaM(0, nOldErrorStart), TEXTATTR_SPELL_ERROR ));
pAction->SetErrorLanguageSelected(pOldAttrib && pOldAttrib->GetErrorDescription().aSuggestions.getLength() &&
LanguageTag( pOldAttrib->GetErrorDescription().aLocale).getLanguageType() ==
GetSpellDialog()->m_pLanguageLB->GetSelectLanguage());
2009-10-31 00:36:06 +01:00
AddUndoAction(pAction);
}
else
m_nErrorStart = m_nErrorEnd = nTextLen;
if( !bModified )
ClearModifyFlag();
SpellDialog* pSpellDialog = GetSpellDialog();
pSpellDialog->m_pIgnorePB->Enable(bRet);
pSpellDialog->m_pIgnoreAllPB->Enable(bRet);
pSpellDialog->m_pAutoCorrPB->Enable(bRet);
pSpellDialog->m_pAddToDictMB->Enable(bRet);
pSpellDialog->m_pAddToDictPB->Enable(bRet);
2009-10-31 00:36:06 +01:00
return bRet;
}
void SentenceEditWindow_Impl::MoveErrorMarkTo(sal_uInt16 nStart, sal_uInt16 nEnd, bool bGrammarError)
2009-10-31 00:36:06 +01:00
{
TextEngine* pTextEngine = GetTextEngine();
pTextEngine->RemoveAttribs( 0, (sal_uInt16)TEXTATTR_FONTCOLOR );
pTextEngine->RemoveAttribs( 0, (sal_uInt16)TEXTATTR_FONTWEIGHT );
2009-10-31 00:36:06 +01:00
pTextEngine->SetAttrib( TextAttribFontWeight(WEIGHT_BOLD), 0, nStart, nEnd );
pTextEngine->SetAttrib( TextAttribFontColor(bGrammarError ? COL_LIGHTBLUE : COL_LIGHTRED), 0, nStart, nEnd );
m_nErrorStart = nStart;
m_nErrorEnd = nEnd;
}
void SentenceEditWindow_Impl::ChangeMarkedWord(const OUString& rNewWord, LanguageType eLanguage)
2009-10-31 00:36:06 +01:00
{
//calculate length changes
long nDiffLen = rNewWord.getLength() - m_nErrorEnd + m_nErrorStart;
2009-10-31 00:36:06 +01:00
TextSelection aSel(TextPaM(0, m_nErrorStart), TextPaM(0, m_nErrorEnd));
//Remove spell error attribute
2009-10-31 00:36:06 +01:00
ExtTextEngine* pTextEngine = GetTextEngine();
pTextEngine->UndoActionStart();
2009-10-31 00:36:06 +01:00
const TextCharAttrib* pErrorAttrib = pTextEngine->FindCharAttrib( TextPaM(0, m_nErrorStart), TEXTATTR_SPELL_ERROR );
DBG_ASSERT(pErrorAttrib, "no error attribute found");
const SpellErrorDescription* pSpellErrorDescription = nullptr;
2009-10-31 00:36:06 +01:00
if(pErrorAttrib)
{
pTextEngine->RemoveAttrib(0, *pErrorAttrib);
pSpellErrorDescription = &static_cast<const SpellErrorAttrib&>(pErrorAttrib->GetAttr()).GetErrorDescription();
}
const TextCharAttrib* pBackAttrib = pTextEngine->FindCharAttrib( TextPaM(0, m_nErrorStart), TEXTATTR_SPELL_BACKGROUND );
pTextEngine->ReplaceText( aSel, rNewWord );
2009-10-31 00:36:06 +01:00
if(!m_nErrorStart)
{
//attributes following an error at the start of the text are not moved but expanded from the
//text engine - this is done to keep full-paragraph-attributes
//in the current case that handling is not desired
const TextCharAttrib* pLangAttrib =
pTextEngine->FindCharAttrib(
TextPaM(0, m_nErrorEnd), TEXTATTR_SPELL_LANGUAGE );
const sal_Int32 nTextLen = pTextEngine->GetTextLen( 0 );
2009-10-31 00:36:06 +01:00
if(pLangAttrib && !pLangAttrib->GetStart() && pLangAttrib->GetEnd() ==
nTextLen)
{
SpellLanguageAttrib aNewLangAttrib( static_cast<const SpellLanguageAttrib&>(pLangAttrib->GetAttr()).GetLanguage());
pTextEngine->RemoveAttrib(0, *pLangAttrib);
pTextEngine->SetAttrib( aNewLangAttrib, 0, m_nErrorEnd + nDiffLen, nTextLen );
2009-10-31 00:36:06 +01:00
}
}
// undo expanded attributes!
if( pBackAttrib && pBackAttrib->GetStart() < m_nErrorStart && pBackAttrib->GetEnd() == m_nErrorEnd + nDiffLen)
{
std::unique_ptr<TextAttrib> pNewBackground(pBackAttrib->GetAttr().Clone());
const sal_Int32 nStart = pBackAttrib->GetStart();
2009-10-31 00:36:06 +01:00
pTextEngine->RemoveAttrib(0, *pBackAttrib);
pTextEngine->SetAttrib(*pNewBackground, 0, nStart, m_nErrorStart);
}
pTextEngine->SetModified(true);
2009-10-31 00:36:06 +01:00
//adjust end position
long nEndTemp = m_nErrorEnd;
nEndTemp += nDiffLen;
m_nErrorEnd = (sal_uInt16)nEndTemp;
2009-10-31 00:36:06 +01:00
SpellUndoAction_Impl* pAction = new SpellUndoAction_Impl(
SPELLUNDO_MOVE_ERROREND, GetSpellDialog()->aDialogUndoLink);
pAction->SetOffset(nDiffLen);
AddUndoAction(pAction);
if(pSpellErrorDescription)
SetAttrib( SpellErrorAttrib(*pSpellErrorDescription), 0, m_nErrorStart, m_nErrorEnd );
SetAttrib( SpellLanguageAttrib(eLanguage), 0, m_nErrorStart, m_nErrorEnd );
pTextEngine->UndoActionEnd();
2009-10-31 00:36:06 +01:00
}
OUString SentenceEditWindow_Impl::GetErrorText() const
2009-10-31 00:36:06 +01:00
{
return GetTextEngine()->GetText(TextSelection(TextPaM(0, m_nErrorStart), TextPaM(0, m_nErrorEnd) ));
}
2009-10-31 00:36:06 +01:00
const SpellErrorDescription* SentenceEditWindow_Impl::GetAlternatives()
{
TextPaM aCursor(0, m_nErrorStart);
const SpellErrorAttrib* pAttrib = static_cast<const SpellErrorAttrib*>(
GetTextEngine()->FindAttrib( aCursor, TEXTATTR_SPELL_ERROR));
return pAttrib ? &pAttrib->GetErrorDescription() : nullptr;
2009-10-31 00:36:06 +01:00
}
2009-10-31 00:36:06 +01:00
void SentenceEditWindow_Impl::RestoreCurrentError()
{
TextPaM aCursor(0, m_nErrorStart);
const SpellErrorAttrib* pAttrib = static_cast<const SpellErrorAttrib*>(
GetTextEngine()->FindAttrib( aCursor, TEXTATTR_SPELL_ERROR));
if( pAttrib )
{
const SpellErrorDescription& rDesc = pAttrib->GetErrorDescription();
if( !rDesc.sErrorText.equals( GetErrorText() ) )
ChangeMarkedWord(rDesc.sErrorText, LanguageTag::convertToLanguageType( rDesc.aLocale ));
2009-10-31 00:36:06 +01:00
}
}
void SentenceEditWindow_Impl::SetAlternatives( const Reference< XSpellAlternatives>& xAlt )
2009-10-31 00:36:06 +01:00
{
TextPaM aCursor(0, m_nErrorStart);
DBG_ASSERT(static_cast<const SpellErrorAttrib*>(
GetTextEngine()->FindAttrib( aCursor, TEXTATTR_SPELL_ERROR)), "no error set?");
OUString aWord;
2009-10-31 00:36:06 +01:00
lang::Locale aLocale;
uno::Sequence< OUString > aAlts;
OUString sServiceName;
2009-10-31 00:36:06 +01:00
if (xAlt.is())
{
aWord = xAlt->getWord();
aLocale = xAlt->getLocale();
aAlts = xAlt->getAlternatives();
uno::Reference< container::XNamed > xNamed( xAlt, uno::UNO_QUERY );
if (xNamed.is())
sServiceName = xNamed->getName();
}
SpellErrorDescription aDesc( false, aWord, aLocale, aAlts, nullptr);
2009-10-31 00:36:06 +01:00
GetTextEngine()->SetAttrib( SpellErrorAttrib(aDesc), 0, m_nErrorStart, m_nErrorEnd );
}
void SentenceEditWindow_Impl::SetAttrib( const TextAttrib& rAttr, sal_uLong nPara, sal_uInt16 nStart, sal_uInt16 nEnd )
2009-10-31 00:36:06 +01:00
{
GetTextEngine()->SetAttrib(rAttr, nPara, nStart, nEnd);
}
void SentenceEditWindow_Impl::SetText( const OUString& rStr )
2009-10-31 00:36:06 +01:00
{
m_nErrorStart = m_nErrorEnd = 0;
GetTextEngine()->SetText(rStr);
}
2009-10-31 00:36:06 +01:00
struct LanguagePosition_Impl
{
sal_uInt16 nPosition;
2009-10-31 00:36:06 +01:00
LanguageType eLanguage;
LanguagePosition_Impl(sal_uInt16 nPos, LanguageType eLang) :
2009-10-31 00:36:06 +01:00
nPosition(nPos),
eLanguage(eLang)
{}
};
typedef std::vector<LanguagePosition_Impl> LanguagePositions_Impl;
static void lcl_InsertBreakPosition_Impl(
LanguagePositions_Impl& rBreakPositions, sal_uInt16 nInsert, LanguageType eLanguage)
2009-10-31 00:36:06 +01:00
{
LanguagePositions_Impl::iterator aStart = rBreakPositions.begin();
while(aStart != rBreakPositions.end())
{
if(aStart->nPosition == nInsert)
{
//the language of following starts has to overwrite
//the one of previous ends
aStart->eLanguage = eLanguage;
return;
}
else if(aStart->nPosition > nInsert)
{
rBreakPositions.insert(aStart, LanguagePosition_Impl(nInsert, eLanguage));
return;
}
else
++aStart;
}
rBreakPositions.push_back(LanguagePosition_Impl(nInsert, eLanguage));
}
/*-------------------------------------------------------------------------
2009-10-31 00:36:06 +01:00
Returns the text in spell portions. Each portion contains text with an
equal language and attribute. The spell alternatives are empty.
-----------------------------------------------------------------------*/
svx::SpellPortions SentenceEditWindow_Impl::CreateSpellPortions() const
2009-10-31 00:36:06 +01:00
{
svx::SpellPortions aRet;
ExtTextEngine* pTextEngine = GetTextEngine();
const sal_Int32 nTextLen = pTextEngine->GetTextLen(0);
2009-10-31 00:36:06 +01:00
if(nTextLen)
{
TextPaM aCursor(0, 0);
LanguagePositions_Impl aBreakPositions;
const TextCharAttrib* pLastLang = nullptr;
const TextCharAttrib* pLastError = nullptr;
2009-10-31 00:36:06 +01:00
LanguageType eLang = LANGUAGE_DONTKNOW;
const TextCharAttrib* pError = nullptr;
2009-10-31 00:36:06 +01:00
while(aCursor.GetIndex() < nTextLen)
{
const TextCharAttrib* pLang = pTextEngine->FindCharAttrib( aCursor, TEXTATTR_SPELL_LANGUAGE);
if(pLang && pLang != pLastLang)
{
eLang = static_cast<const SpellLanguageAttrib&>(pLang->GetAttr()).GetLanguage();
lcl_InsertBreakPosition_Impl(aBreakPositions, pLang->GetStart(), eLang);
lcl_InsertBreakPosition_Impl(aBreakPositions, pLang->GetEnd(), eLang);
pLastLang = pLang;
}
pError = pTextEngine->FindCharAttrib( aCursor, TEXTATTR_SPELL_ERROR);
if(pError && pLastError != pError)
{
lcl_InsertBreakPosition_Impl(aBreakPositions, pError->GetStart(), eLang);
lcl_InsertBreakPosition_Impl(aBreakPositions, pError->GetEnd(), eLang);
pLastError = pError;
}
++aCursor.GetIndex();
2009-10-31 00:36:06 +01:00
}
2009-10-31 00:36:06 +01:00
if(nTextLen && aBreakPositions.empty())
{
//if all content has been overwritten the attributes may have been removed, too
svx::SpellPortion aPortion1;
aPortion1.eLanguage = GetSpellDialog()->GetSelectedLang_Impl();
aPortion1.sText = pTextEngine->GetText(
TextSelection(TextPaM(0, 0), TextPaM(0, nTextLen)));
aRet.push_back(aPortion1);
}
else if(!aBreakPositions.empty())
{
LanguagePositions_Impl::iterator aStart = aBreakPositions.begin();
//start should always be Null
eLang = aStart->eLanguage;
sal_uInt16 nStart = aStart->nPosition;
2009-10-31 00:36:06 +01:00
DBG_ASSERT(!nStart, "invalid start position - language attribute missing?");
++aStart;
while(aStart != aBreakPositions.end())
{
svx::SpellPortion aPortion1;
aPortion1.eLanguage = eLang;
aPortion1.sText = pTextEngine->GetText(
TextSelection(TextPaM(0, nStart), TextPaM(0, aStart->nPosition)));
bool bIsIgnoreError = m_aIgnoreErrorsAt.find( nStart ) != m_aIgnoreErrorsAt.end();
if( bIsIgnoreError )
2009-10-31 00:36:06 +01:00
{
aPortion1.bIgnoreThisError = true;
}
aRet.push_back(aPortion1);
nStart = aStart->nPosition;
eLang = aStart->eLanguage;
++aStart;
}
}
// quick partly fix of #i71318. Correct fix needs to patch the TextEngine itself...
// this one will only prevent text from disappearing. It may to not have the
// correct language and will probably not spell checked...
const sal_uInt32 nPara = pTextEngine->GetParagraphCount();
2009-10-31 00:36:06 +01:00
if (nPara > 1)
{
OUString aLeftOverText;
for (sal_uInt32 i = 1; i < nPara; ++i)
2009-10-31 00:36:06 +01:00
{
aLeftOverText += "\x0a"; // the manual line break...
2009-10-31 00:36:06 +01:00
aLeftOverText += pTextEngine->GetText(i);
}
if (pError)
{ // we need to add a new portion containing the left-over text
svx::SpellPortion aPortion2;
aPortion2.eLanguage = eLang;
aPortion2.sText = aLeftOverText;
aRet.push_back( aPortion2 );
}
else
{ // we just need to append the left-over text to the last portion (which had no errors)
aRet[ aRet.size() - 1 ].sText += aLeftOverText;
}
}
}
return aRet;
}
2009-10-31 00:36:06 +01:00
void SentenceEditWindow_Impl::Undo()
{
::svl::IUndoManager& rUndoMgr = GetTextEngine()->GetUndoManager();
2009-10-31 00:36:06 +01:00
DBG_ASSERT(GetUndoActionCount(), "no undo actions available" );
if(!GetUndoActionCount())
return;
bool bSaveUndoEdit = IsUndoEditMode();
sal_uInt16 nId;
2009-10-31 00:36:06 +01:00
//if the undo edit mode is active then undo all changes until the UNDO_EDIT_MODE action has been found
do
{
nId = rUndoMgr.GetUndoActionId();
rUndoMgr.Undo();
}while(bSaveUndoEdit && SPELLUNDO_UNDO_EDIT_MODE != nId && GetUndoActionCount());
if(bSaveUndoEdit || SPELLUNDO_CHANGE_GROUP == nId)
GetSpellDialog()->UpdateBoxes_Impl();
}
2009-10-31 00:36:06 +01:00
void SentenceEditWindow_Impl::ResetUndo()
{
GetTextEngine()->ResetUndo();
}
void SentenceEditWindow_Impl::AddUndoAction( SfxUndoAction *pAction )
2009-10-31 00:36:06 +01:00
{
::svl::IUndoManager& rUndoMgr = GetTextEngine()->GetUndoManager();
rUndoMgr.AddUndoAction(pAction);
GetSpellDialog()->m_pUndoPB->Enable();
2009-10-31 00:36:06 +01:00
}
sal_uInt16 SentenceEditWindow_Impl::GetUndoActionCount()
2009-10-31 00:36:06 +01:00
{
return GetTextEngine()->GetUndoManager().GetUndoActionCount();
}
void SentenceEditWindow_Impl::UndoActionStart( sal_uInt16 nId )
2009-10-31 00:36:06 +01:00
{
GetTextEngine()->UndoActionStart(nId);
}
void SentenceEditWindow_Impl::UndoActionEnd()
2009-10-31 00:36:06 +01:00
{
GetTextEngine()->UndoActionEnd();
2009-10-31 00:36:06 +01:00
}
2009-10-31 00:36:06 +01:00
void SentenceEditWindow_Impl::MoveErrorEnd(long nOffset)
{
if(nOffset > 0)
m_nErrorEnd = m_nErrorEnd - (sal_uInt16)nOffset;
2009-10-31 00:36:06 +01:00
else
m_nErrorEnd = m_nErrorEnd -(sal_uInt16)- nOffset;
2009-10-31 00:36:06 +01:00
}
2009-10-31 00:36:06 +01:00
void SentenceEditWindow_Impl::SetUndoEditMode(bool bSet)
{
DBG_ASSERT(!bSet || m_bIsUndoEditMode != bSet, "SetUndoEditMode with equal values?");
m_bIsUndoEditMode = bSet;
//disable all buttons except the Change
SpellDialog* pSpellDialog = GetSpellDialog();
Control* aControls[] =
{
pSpellDialog->m_pChangeAllPB,
pSpellDialog->m_pExplainFT,
pSpellDialog->m_pIgnoreAllPB,
pSpellDialog->m_pIgnoreRulePB,
pSpellDialog->m_pIgnorePB,
pSpellDialog->m_pSuggestionLB,
pSpellDialog->m_pSuggestionFT,
pSpellDialog->m_pLanguageFT,
pSpellDialog->m_pLanguageLB,
pSpellDialog->m_pAddToDictMB,
pSpellDialog->m_pAddToDictPB,
pSpellDialog->m_pAutoCorrPB,
nullptr
2009-10-31 00:36:06 +01:00
};
sal_Int32 nIdx = 0;
do
{
aControls[nIdx]->Enable(false);
2009-10-31 00:36:06 +01:00
}
while(aControls[++nIdx]);
//remove error marks
TextEngine* pTextEngine = GetTextEngine();
pTextEngine->RemoveAttribs( 0, (sal_uInt16)TEXTATTR_FONTCOLOR );
pTextEngine->RemoveAttribs( 0, (sal_uInt16)TEXTATTR_FONTWEIGHT );
2009-10-31 00:36:06 +01:00
//put the appropriate action on the Undo-stack
SpellUndoAction_Impl* pAction = new SpellUndoAction_Impl(
SPELLUNDO_UNDO_EDIT_MODE, GetSpellDialog()->aDialogUndoLink);
AddUndoAction(pAction);
pSpellDialog->m_pChangePB->Enable();
2009-10-31 00:36:06 +01:00
}
IMPL_LINK_TYPED( SpellDialog, HandleHyperlink, FixedHyperlink&, rHyperlink, void )
2009-10-31 00:36:06 +01:00
{
OUString sURL=rHyperlink.GetURL();
OUString sTitle=GetText();
2009-10-31 00:36:06 +01:00
if ( sURL.isEmpty() ) // Nothing to do, when the URL is empty
return;
try
{
uno::Reference< css::system::XSystemShellExecute > xSystemShellExecute(
css::system::SystemShellExecute::create(::comphelper::getProcessComponentContext()) );
xSystemShellExecute->execute( sURL, OUString(), css::system::SystemShellExecuteFlags::URIS_ONLY );
}
catch ( uno::Exception& )
{
uno::Any exc( ::cppu::getCaughtException() );
OUString msg( ::comphelper::anyToString( exc ) );
const SolarMutexGuard guard;
ScopedVclPtrInstance< MessageDialog > aErrorBox(nullptr, msg);
aErrorBox->SetText(sTitle);
aErrorBox->Execute();
}
2009-10-31 00:36:06 +01:00
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */