2010-10-14 08:27:31 +02:00
|
|
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2008-07-17 14:33:53 +00:00
|
|
|
/*************************************************************************
|
2010-02-12 15:01:35 +01:00
|
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
|
|
*
|
|
|
|
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
|
|
|
*
|
|
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
|
|
|
*
|
|
|
|
* This file is part of OpenOffice.org.
|
|
|
|
*
|
|
|
|
* OpenOffice.org is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU Lesser General Public License version 3
|
|
|
|
* only, as published by the Free Software Foundation.
|
|
|
|
*
|
|
|
|
* OpenOffice.org is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU Lesser General Public License version 3 for more details
|
|
|
|
* (a copy is included in the LICENSE file that accompanied this code).
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
|
|
* version 3 along with OpenOffice.org. If not, see
|
|
|
|
* <http://www.openoffice.org/license.html>
|
|
|
|
* for a copy of the LGPLv3 License.
|
|
|
|
*
|
2008-07-17 14:33:53 +00:00
|
|
|
***********************************************************************/
|
|
|
|
|
2008-07-18 10:35:58 +00:00
|
|
|
// MARKER(update_precomp.py): autogen include statement, do not remove
|
|
|
|
#include "precompiled_comphelper.hxx"
|
|
|
|
|
2008-07-17 14:33:53 +00:00
|
|
|
#include <comphelper/uieventslogger.hxx>
|
2008-12-16 08:01:40 +00:00
|
|
|
#include <com/sun/star/frame/XDesktop.hpp>
|
|
|
|
#include <com/sun/star/frame/XTerminateListener.hpp>
|
|
|
|
#include <com/sun/star/lang/XEventListener.hpp>
|
2008-07-17 14:33:53 +00:00
|
|
|
#include <com/sun/star/lang/XMultiComponentFactory.hpp>
|
|
|
|
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
|
|
|
|
#include <com/sun/star/logging/LogLevel.hpp>
|
2008-12-16 08:01:40 +00:00
|
|
|
#include <com/sun/star/logging/XCsvLogFormatter.hpp>
|
2008-07-17 14:33:53 +00:00
|
|
|
#include <com/sun/star/logging/XLogHandler.hpp>
|
2008-12-16 08:01:40 +00:00
|
|
|
#include <com/sun/star/logging/XLogger.hpp>
|
2008-07-17 14:33:53 +00:00
|
|
|
#include <com/sun/star/logging/XLoggerPool.hpp>
|
|
|
|
#include <com/sun/star/oooimprovement/XCoreController.hpp>
|
|
|
|
#include <com/sun/star/uno/Sequence.hxx>
|
|
|
|
#include <com/sun/star/util/XStringSubstitution.hpp>
|
|
|
|
#include <comphelper/configurationhelper.hxx>
|
|
|
|
#include <comphelper/processfactory.hxx>
|
2008-12-16 08:01:40 +00:00
|
|
|
#include <map>
|
2008-07-17 14:33:53 +00:00
|
|
|
#include <osl/file.hxx>
|
|
|
|
#include <osl/mutex.hxx>
|
|
|
|
#include <osl/time.h>
|
|
|
|
#include <rtl/ustrbuf.hxx>
|
2011-04-02 16:27:05 +01:00
|
|
|
#include <rtl/instance.hxx>
|
2008-07-17 14:33:53 +00:00
|
|
|
|
|
|
|
|
|
|
|
using namespace com::sun::star::beans;
|
2008-12-16 08:01:40 +00:00
|
|
|
using namespace com::sun::star::frame;
|
2008-07-17 14:33:53 +00:00
|
|
|
using namespace com::sun::star::lang;
|
|
|
|
using namespace com::sun::star::logging;
|
|
|
|
using namespace com::sun::star::oooimprovement;
|
2008-12-16 08:01:40 +00:00
|
|
|
using namespace com::sun::star::uno;
|
2008-07-17 14:33:53 +00:00
|
|
|
using namespace com::sun::star::util;
|
|
|
|
using namespace cppu;
|
|
|
|
using namespace osl;
|
2008-11-19 16:40:06 +00:00
|
|
|
using namespace std;
|
|
|
|
|
2011-02-26 22:46:43 +01:00
|
|
|
using ::rtl::OUString;
|
|
|
|
using ::rtl::OUStringBuffer;
|
2008-11-19 16:40:06 +00:00
|
|
|
|
|
|
|
namespace
|
|
|
|
{
|
|
|
|
static void lcl_SetupOriginAppAbbr(map<OUString, OUString>& abbrs)
|
|
|
|
{
|
2010-10-25 16:57:01 +01:00
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.TextDocument"))] = OUString(sal_Unicode('W')); // Writer
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sheet.SpreadsheetDocument"))] = OUString(sal_Unicode('C')); // Calc
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.presentation.PresentationDocument"))] = OUString(sal_Unicode('I')); // Impress
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.DrawingDocument"))] = OUString(sal_Unicode('D')); // Draw
|
2008-11-19 16:40:06 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static void lcl_SetupOriginWidgetAbbr(map<OUString,OUString>& abbrs)
|
|
|
|
{
|
2010-10-25 16:57:01 +01:00
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("ButtonToolbarController"))] = OUString(sal_Unicode('0'));
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("ComplexToolbarController"))] = OUString(sal_Unicode('1'));
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("ControlMenuController"))] = OUString(sal_Unicode('2'));
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("FontMenuController"))] = OUString(sal_Unicode('3'));
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("FontSizeMenuController"))] = OUString(sal_Unicode('4'));
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("FooterMenuController"))] = OUString(sal_Unicode('5'));
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("GenericToolbarController"))] = OUString(sal_Unicode('6'));
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("HeaderMenuController"))] = OUString(sal_Unicode('7'));
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("LanguageSelectionMenuController"))] = OUString(sal_Unicode('8'));
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("LangSelectionStatusbarController"))] = OUString(sal_Unicode('9'));
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("MacrosMenuController"))] = OUString(RTL_CONSTASCII_USTRINGPARAM("10"));
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("MenuBarManager"))] = OUString(RTL_CONSTASCII_USTRINGPARAM("11"));
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("NewMenuController"))] = OUString(RTL_CONSTASCII_USTRINGPARAM("12"));
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("ObjectMenuController"))] = OUString(RTL_CONSTASCII_USTRINGPARAM("13"));
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("RecentFilesMenuController"))] = OUString(RTL_CONSTASCII_USTRINGPARAM("14"));
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("ToolbarsMenuController"))] = OUString(RTL_CONSTASCII_USTRINGPARAM("15"));
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("SfxToolBoxControl"))] = OUString(RTL_CONSTASCII_USTRINGPARAM("16"));
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("SfxAsyncExec"))] = OUString(RTL_CONSTASCII_USTRINGPARAM("17"));
|
|
|
|
abbrs[OUString(RTL_CONSTASCII_USTRINGPARAM("AcceleratorExecute"))] = OUString(RTL_CONSTASCII_USTRINGPARAM("18"));
|
2008-11-19 16:40:06 +00:00
|
|
|
};
|
|
|
|
}
|
2008-07-17 14:33:53 +00:00
|
|
|
|
|
|
|
namespace comphelper
|
|
|
|
{
|
|
|
|
// declaration of implementation
|
|
|
|
class UiEventsLogger_Impl;
|
|
|
|
class UiEventsLogger_Impl : public UiEventsLogger
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
//typedefs and friends
|
|
|
|
friend class UiEventsLogger;
|
2008-12-16 08:01:40 +00:00
|
|
|
typedef UiEventsLogger_Impl* ptr;
|
2008-07-17 14:33:53 +00:00
|
|
|
|
|
|
|
// instance methods and data
|
|
|
|
UiEventsLogger_Impl();
|
|
|
|
void initializeLogger();
|
|
|
|
void logDispatch(const ::com::sun::star::util::URL& url,
|
|
|
|
const Sequence<PropertyValue>& args);
|
|
|
|
void logRotated();
|
|
|
|
void logVcl(const ::rtl::OUString& parent_id,
|
|
|
|
sal_Int32 window_type,
|
|
|
|
const ::rtl::OUString& id,
|
|
|
|
const ::rtl::OUString& method,
|
|
|
|
const ::rtl::OUString& param);
|
|
|
|
void rotate();
|
|
|
|
void hotRotate();
|
|
|
|
void prepareLogHandler();
|
|
|
|
void checkIdleTimeout();
|
|
|
|
OUString getCurrentPath();
|
|
|
|
OUString getRotatedPath();
|
2008-12-16 08:01:40 +00:00
|
|
|
void disposing();
|
2008-07-17 14:33:53 +00:00
|
|
|
|
|
|
|
bool m_Active;
|
|
|
|
TimeValue m_LastLogEventTime;
|
|
|
|
const OUString m_LogPath;
|
|
|
|
const TimeValue m_IdleTimeout;
|
|
|
|
sal_Int32 m_SessionLogEventCount;
|
|
|
|
Reference<XLogger> m_Logger;
|
|
|
|
Reference<XLogHandler> m_LogHandler;
|
|
|
|
Reference<XCsvLogFormatter> m_Formatter;
|
2008-11-19 16:40:06 +00:00
|
|
|
map<OUString, OUString> m_OriginAppAbbr;
|
|
|
|
map<OUString, OUString> m_OriginWidgetAbbr;
|
|
|
|
|
2008-07-17 14:33:53 +00:00
|
|
|
|
|
|
|
// static methods and data
|
|
|
|
static ptr getInstance();
|
|
|
|
static bool shouldActivate();
|
|
|
|
static bool getEnabledFromCoreController();
|
|
|
|
static bool getEnabledFromCfg();
|
|
|
|
static TimeValue getIdleTimeoutFromCfg();
|
|
|
|
static OUString getLogPathFromCfg();
|
2008-11-19 16:40:06 +00:00
|
|
|
static sal_Int32 findIdx(const Sequence<PropertyValue>& args, const OUString& key);
|
2008-07-17 14:33:53 +00:00
|
|
|
|
|
|
|
static ptr instance;
|
|
|
|
static const sal_Int32 COLUMNS;
|
|
|
|
static const OUString CFG_ENABLED;
|
|
|
|
static const OUString CFG_IDLETIMEOUT;
|
|
|
|
static const OUString CFG_LOGGING;
|
|
|
|
static const OUString CFG_LOGPATH;
|
|
|
|
static const OUString CFG_OOOIMPROVEMENT;
|
|
|
|
static const OUString ETYPE_DISPATCH;
|
|
|
|
static const OUString ETYPE_ROTATED;
|
|
|
|
static const OUString ETYPE_VCL;
|
|
|
|
static const OUString CSSL_CSVFORMATTER;
|
|
|
|
static const OUString CSSL_FILEHANDLER;
|
|
|
|
static const OUString CSSL_LOGGERPOOL;
|
|
|
|
static const OUString CSSO_CORECONTROLLER;
|
|
|
|
static const OUString CSST_JOBEXECUTOR;
|
|
|
|
static const OUString CSSU_PATHSUB;
|
|
|
|
static const OUString LOGGERNAME;
|
2008-11-19 16:40:06 +00:00
|
|
|
static const OUString LOGORIGINAPP;
|
|
|
|
static const OUString LOGORIGINWIDGET;
|
2008-07-17 14:33:53 +00:00
|
|
|
static const OUString UNKNOWN_ORIGIN;
|
|
|
|
static const OUString FN_CURRENTLOG;
|
|
|
|
static const OUString FN_ROTATEDLOG;
|
|
|
|
static const OUString LOGROTATE_EVENTNAME;
|
|
|
|
static const OUString URL_UNO;
|
2010-08-26 18:03:40 +02:00
|
|
|
static const OUString URL_SPECIAL;
|
2008-11-19 16:40:06 +00:00
|
|
|
static const OUString URL_FILE;
|
2008-07-17 14:33:53 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace comphelper
|
|
|
|
{
|
|
|
|
// consts
|
2008-11-19 16:40:06 +00:00
|
|
|
const sal_Int32 UiEventsLogger_Impl::COLUMNS = 9;
|
2010-10-25 16:57:01 +01:00
|
|
|
const OUString UiEventsLogger_Impl::CFG_ENABLED(RTL_CONSTASCII_USTRINGPARAM("EnablingAllowed"));
|
|
|
|
const OUString UiEventsLogger_Impl::CFG_IDLETIMEOUT(RTL_CONSTASCII_USTRINGPARAM("IdleTimeout"));
|
|
|
|
const OUString UiEventsLogger_Impl::CFG_LOGGING(RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.Office.Logging"));
|
|
|
|
const OUString UiEventsLogger_Impl::CFG_LOGPATH(RTL_CONSTASCII_USTRINGPARAM("LogPath"));
|
|
|
|
const OUString UiEventsLogger_Impl::CFG_OOOIMPROVEMENT(RTL_CONSTASCII_USTRINGPARAM("OOoImprovement"));
|
2008-07-17 14:33:53 +00:00
|
|
|
|
2010-10-25 16:57:01 +01:00
|
|
|
const OUString UiEventsLogger_Impl::CSSL_CSVFORMATTER(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.logging.CsvFormatter"));
|
|
|
|
const OUString UiEventsLogger_Impl::CSSL_FILEHANDLER(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.logging.FileHandler"));
|
|
|
|
const OUString UiEventsLogger_Impl::CSSL_LOGGERPOOL(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.logging.LoggerPool"));
|
|
|
|
const OUString UiEventsLogger_Impl::CSSO_CORECONTROLLER(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.oooimprovement.CoreController"));
|
|
|
|
const OUString UiEventsLogger_Impl::CSSU_PATHSUB(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.util.PathSubstitution"));
|
2008-07-17 14:33:53 +00:00
|
|
|
|
2010-10-25 16:57:01 +01:00
|
|
|
const OUString UiEventsLogger_Impl::ETYPE_DISPATCH(RTL_CONSTASCII_USTRINGPARAM("dispatch"));
|
|
|
|
const OUString UiEventsLogger_Impl::ETYPE_ROTATED(RTL_CONSTASCII_USTRINGPARAM("rotated"));
|
|
|
|
const OUString UiEventsLogger_Impl::ETYPE_VCL(RTL_CONSTASCII_USTRINGPARAM("vcl"));
|
2008-07-17 14:33:53 +00:00
|
|
|
|
2010-10-25 16:57:01 +01:00
|
|
|
const OUString UiEventsLogger_Impl::LOGGERNAME(RTL_CONSTASCII_USTRINGPARAM("org.openoffice.oooimprovement.Core.UiEventsLogger"));
|
|
|
|
const OUString UiEventsLogger_Impl::LOGORIGINWIDGET(RTL_CONSTASCII_USTRINGPARAM("comphelper.UiEventsLogger.LogOriginWidget"));
|
|
|
|
const OUString UiEventsLogger_Impl::LOGORIGINAPP(RTL_CONSTASCII_USTRINGPARAM("comphelper.UiEventsLogger.LogOriginApp"));
|
2008-07-17 14:33:53 +00:00
|
|
|
|
2010-10-25 16:57:01 +01:00
|
|
|
const OUString UiEventsLogger_Impl::UNKNOWN_ORIGIN(RTL_CONSTASCII_USTRINGPARAM("unknown origin"));
|
|
|
|
const OUString UiEventsLogger_Impl::FN_CURRENTLOG(RTL_CONSTASCII_USTRINGPARAM("Current"));
|
|
|
|
const OUString UiEventsLogger_Impl::FN_ROTATEDLOG(RTL_CONSTASCII_USTRINGPARAM("OOoImprove"));
|
|
|
|
const OUString UiEventsLogger_Impl::LOGROTATE_EVENTNAME(RTL_CONSTASCII_USTRINGPARAM("onOOoImprovementLogRotated"));
|
2008-07-17 14:33:53 +00:00
|
|
|
|
2010-10-25 16:57:01 +01:00
|
|
|
const OUString UiEventsLogger_Impl::URL_UNO(RTL_CONSTASCII_USTRINGPARAM(".uno:"));
|
Merge commit 'ooo/DEV300_m101' into intm101
The following builds for me:
basebmp, basegfx, comphelper, dtrans, i18npool, i18nutil, l10ntools, o3tl,
psprint_config, regexp, rsc, sax, sot, tools, ucbhelper, unotools, vcl
The rest still needs fixing ;-)
Conflicts:
canvas/prj/build.lst
canvas/source/cairo/cairo_textlayout.cxx
canvas/source/directx/dx_winstuff.hxx
canvas/source/tools/image.cxx
canvas/source/vcl/canvashelper.cxx
comphelper/inc/comphelper/documentconstants.hxx
comphelper/inc/comphelper/optionalvalue.hxx
comphelper/inc/comphelper/querydeep.hxx
comphelper/prj/build.lst
comphelper/qa/complex/makefile.mk
comphelper/qa/string/test_string_noadditional.cxx
comphelper/source/misc/componentmodule.cxx
comphelper/source/misc/mimeconfighelper.cxx
comphelper/source/misc/querydeep.cxx
comphelper/source/misc/uieventslogger.cxx
comphelper/source/property/TypeGeneration.cxx
comphelper/test/uno_iterators/uno_iterators.cxx
comphelper/util/makefile.mk
cppcanvas/source/mtfrenderer/implrenderer.cxx
dtrans/prj/build.lst
dtrans/source/generic/dtrans.cxx
dtrans/source/win32/dtobj/FmtFilter.cxx
i18npool/prj/build.lst
i18npool/source/localedata/data/localedata_others.map
i18npool/source/localedata/data/makefile.mk
i18npool/source/localedata/localedata.cxx
i18npool/source/localedata/saxparser.cxx
i18npool/source/registerservices/registerservices.cxx
i18npool/source/search/textsearch.cxx
l10ntools/inc/cfgmerge.hxx
l10ntools/inc/export.hxx
l10ntools/inc/gsicheck.hxx
l10ntools/inc/l10ntools/vosapp.hxx
l10ntools/inc/tagtest.hxx
l10ntools/inc/xmlparse.hxx
l10ntools/layout/layoutparse.cxx
l10ntools/layout/tralay.cxx
l10ntools/source/cfgmerge.cxx
l10ntools/source/export.cxx
l10ntools/source/export2.cxx
l10ntools/source/gsicheck.cxx
l10ntools/source/help/HelpLinker.cxx
l10ntools/source/lngex.cxx
l10ntools/source/lngmerge.cxx
l10ntools/source/merge.cxx
l10ntools/source/tagtest.cxx
l10ntools/source/xmlparse.cxx
padmin/source/fontentry.cxx
padmin/source/padialog.cxx
padmin/source/padialog.src
padmin/source/pamain.cxx
rsc/inc/rscarray.hxx
rsc/inc/rscclass.hxx
rsc/inc/rscclobj.hxx
rsc/inc/rsccont.hxx
rsc/inc/rscdb.hxx
rsc/inc/rscdef.hxx
rsc/inc/rscmgr.hxx
rsc/inc/rscrange.hxx
rsc/inc/rsctop.hxx
rsc/inc/vclrsc.hxx
rsc/source/parser/rscdb.cxx
rsc/source/parser/rscicpx.cxx
rsc/source/parser/rscinit.cxx
rsc/source/prj/start.cxx
rsc/source/res/rscarray.cxx
rsc/source/res/rscclass.cxx
rsc/source/res/rscclobj.cxx
rsc/source/res/rsccont.cxx
rsc/source/res/rscmgr.cxx
rsc/source/res/rscrange.cxx
rsc/source/res/rsctop.cxx
rsc/source/rsc/rsc.cxx
rsc/source/tools/rscdef.cxx
rsc/source/tools/rsctools.cxx
sax/source/expatwrap/sax_expat.cxx
sax/source/fastparser/facreg.cxx
sax/source/tools/fastserializer.cxx
sot/inc/sot/filelist.hxx
sot/inc/sot/object.hxx
sot/source/base/factory.cxx
sot/source/base/filelist.cxx
sot/source/sdstor/stg.cxx
sot/source/sdstor/stgcache.cxx
sot/source/sdstor/stgole.cxx
sot/source/sdstor/stgstrms.cxx
sot/source/sdstor/storage.cxx
sot/source/sdstor/ucbstorage.cxx
svl/inc/svl/cenumitm.hxx
svl/inc/svl/cintitem.hxx
svl/inc/svl/cntwall.hxx
svl/inc/svl/ctypeitm.hxx
svl/inc/svl/custritm.hxx
svl/inc/svl/dateitem.hxx
svl/inc/svl/filerec.hxx
svl/inc/svl/globalnameitem.hxx
svl/inc/svl/ilstitem.hxx
svl/inc/svl/imageitm.hxx
svl/inc/svl/intitem.hxx
svl/inc/svl/itempool.hxx
svl/inc/svl/itemset.hxx
svl/inc/svl/lckbitem.hxx
svl/inc/svl/poolitem.hxx
svl/inc/svl/ptitem.hxx
svl/inc/svl/rectitem.hxx
svl/inc/svl/sfontitm.hxx
svl/inc/svl/slstitm.hxx
svl/inc/svl/srchitem.hxx
svl/inc/svl/svarray.hxx
svl/inc/svl/svdde.hxx
svl/inc/svl/svstdarr.hxx
svl/inc/svl/szitem.hxx
svl/inc/svl/visitem.hxx
svl/inc/svl/zforlist.hxx
svl/inc/svl/zformat.hxx
svl/prj/build.lst
svl/qa/complex/ConfigItems/helper/ConfigItemTest.cxx
svl/qa/complex/ConfigItems/helper/makefile.mk
svl/qa/makefile.mk
svl/source/filepicker/pickerhelper.cxx
svl/source/filerec/filerec.cxx
svl/source/items/cenumitm.cxx
svl/source/items/cintitem.cxx
svl/source/items/cntwall.cxx
svl/source/items/ctypeitm.cxx
svl/source/items/custritm.cxx
svl/source/items/dateitem.cxx
svl/source/items/globalnameitem.cxx
svl/source/items/ilstitem.cxx
svl/source/items/imageitm.cxx
svl/source/items/intitem.cxx
svl/source/items/itempool.cxx
svl/source/items/itemprop.cxx
svl/source/items/itemset.cxx
svl/source/items/lckbitem.cxx
svl/source/items/poolio.cxx
svl/source/items/poolitem.cxx
svl/source/items/ptitem.cxx
svl/source/items/rectitem.cxx
svl/source/items/slstitm.cxx
svl/source/items/srchitem.cxx
svl/source/items/style.cxx
svl/source/items/szitem.cxx
svl/source/items/visitem.cxx
svl/source/items/whiter.cxx
svl/source/memtools/svarray.cxx
svl/source/misc/PasswordHelper.cxx
svl/source/misc/adrparse.cxx
svl/source/misc/lngmisc.cxx
svl/source/notify/brdcst.cxx
svl/source/notify/listener.cxx
svl/source/notify/listenerbase.cxx
svl/source/numbers/makefile.mk
svl/source/numbers/nbdll.cxx
svl/source/numbers/zforfind.cxx
svl/source/numbers/zforlist.cxx
svl/source/numbers/zformat.cxx
svl/source/numbers/zforscan.cxx
svl/source/passwordcontainer/passwordcontainer.cxx
svl/source/svdde/ddecli.cxx
svl/source/svdde/ddeimp.hxx
svl/source/svdde/ddemlos2.h
svl/source/svdde/ddesvr.cxx
svl/source/undo/undo.cxx
svl/source/uno/registerservices.cxx
svl/util/makefile.mk
svtools/bmpmaker/bmpsum.cxx
svtools/bmpmaker/g2g.cxx
svtools/bmpmaker/makefile.mk
svtools/inc/borderhelper.hxx
svtools/inc/svtools/accessiblefactory.hxx
svtools/inc/svtools/apearcfg.hxx
svtools/inc/svtools/brwbox.hxx
svtools/inc/svtools/ctrlbox.hxx
svtools/inc/svtools/ctrltool.hxx
svtools/inc/svtools/editbrowsebox.hxx
svtools/inc/svtools/ehdl.hxx
svtools/inc/svtools/embedhlp.hxx
svtools/inc/svtools/filter.hxx
svtools/inc/svtools/ivctrl.hxx
svtools/inc/svtools/parhtml.hxx
svtools/inc/svtools/printdlg.hxx
svtools/inc/svtools/rtftoken.h
svtools/inc/svtools/ruler.hxx
svtools/inc/svtools/svicnvw.hxx
svtools/inc/svtools/svlbitm.hxx
svtools/inc/svtools/svlbox.hxx
svtools/inc/svtools/svtreebx.hxx
svtools/inc/svtools/tabbar.hxx
svtools/inc/svtools/table/abstracttablecontrol.hxx
svtools/inc/svtools/taskbar.hxx
svtools/inc/svtools/textview.hxx
svtools/inc/svtools/valueset.hxx
svtools/source/brwbox/brwbox1.cxx
svtools/source/brwbox/brwbox2.cxx
svtools/source/brwbox/datwin.cxx
svtools/source/brwbox/datwin.hxx
svtools/source/brwbox/makefile.mk
svtools/source/config/apearcfg.cxx
svtools/source/config/htmlcfg.cxx
svtools/source/config/menuoptions.cxx
svtools/source/config/miscopt.cxx
svtools/source/contnr/cont_pch.cxx
svtools/source/contnr/ctrdll.cxx
svtools/source/contnr/fileview.cxx
svtools/source/contnr/imivctl1.cxx
svtools/source/contnr/ivctrl.cxx
svtools/source/contnr/makefile.mk
svtools/source/contnr/svcontnr.src
svtools/source/contnr/svicnvw.cxx
svtools/source/contnr/svimpbox.cxx
svtools/source/contnr/svimpicn.cxx
svtools/source/contnr/svlbitm.cxx
svtools/source/contnr/svtreebx.cxx
svtools/source/contnr/templwin.cxx
svtools/source/contnr/templwin.hxx
svtools/source/control/asynclink.cxx
svtools/source/control/ctrlbox.cxx
svtools/source/control/ctrldll.cxx
svtools/source/control/ctrltool.cxx
svtools/source/control/filectrl.cxx
svtools/source/control/filectrl.src
svtools/source/control/headbar.cxx
svtools/source/control/inettbc.cxx
svtools/source/control/makefile.mk
svtools/source/control/prgsbar.cxx
svtools/source/control/roadmap.cxx
svtools/source/control/ruler.cxx
svtools/source/control/scriptedtext.cxx
svtools/source/control/stdmenu.cxx
svtools/source/control/tabbar.cxx
svtools/source/control/taskbar.cxx
svtools/source/control/taskbox.cxx
svtools/source/control/taskmisc.cxx
svtools/source/control/taskstat.cxx
svtools/source/control/valueacc.cxx
svtools/source/control/valueset.cxx
svtools/source/dialogs/addresstemplate.cxx
svtools/source/dialogs/addresstemplate.src
svtools/source/dialogs/colrdlg.src
svtools/source/dialogs/filedlg2.cxx
svtools/source/dialogs/filedlg2.hxx
svtools/source/dialogs/makefile.mk
svtools/source/dialogs/printdlg.cxx
svtools/source/dialogs/printdlg.src
svtools/source/dialogs/propctrl.cxx
svtools/source/dialogs/propctrl.hxx
svtools/source/dialogs/property.cxx
svtools/source/edit/makefile.mk
svtools/source/edit/sychconv.cxx
svtools/source/edit/syntaxhighlight.cxx
svtools/source/edit/textdoc.cxx
svtools/source/edit/texteng.cxx
svtools/source/edit/textundo.cxx
svtools/source/edit/textview.cxx
svtools/source/filter.vcl/filter/SvFilterOptionsDialog.cxx
svtools/source/filter.vcl/filter/dlgejpg.cxx
svtools/source/filter.vcl/filter/dlgejpg.hxx
svtools/source/filter.vcl/filter/dlgejpg.src
svtools/source/filter.vcl/filter/dlgepng.cxx
svtools/source/filter.vcl/filter/dlgepng.hxx
svtools/source/filter.vcl/filter/dlgepng.src
svtools/source/filter.vcl/filter/dlgexpor.cxx
svtools/source/filter.vcl/filter/dlgexpor.hxx
svtools/source/filter.vcl/filter/dlgexpor.src
svtools/source/filter.vcl/filter/filter2.cxx
svtools/source/filter.vcl/filter/makefile.mk
svtools/source/filter.vcl/filter/sgfbram.cxx
svtools/source/filter.vcl/filter/sgvmain.cxx
svtools/source/filter.vcl/filter/sgvspln.cxx
svtools/source/filter.vcl/filter/strings.src
svtools/source/filter.vcl/jpeg/makefile.mk
svtools/source/filter.vcl/wmf/emfwr.cxx
svtools/source/filter.vcl/wmf/emfwr.hxx
svtools/source/filter.vcl/wmf/enhwmf.cxx
svtools/source/filter.vcl/wmf/winmtf.hxx
svtools/source/filter.vcl/wmf/wmfwr.cxx
svtools/source/filter.vcl/wmf/wmfwr.hxx
svtools/source/graphic/grfcache.cxx
svtools/source/graphic/grfcache.hxx
svtools/source/graphic/grfmgr.cxx
svtools/source/graphic/makefile.mk
svtools/source/inc/accessibletableimp.hxx
svtools/source/inc/svimpbox.hxx
svtools/source/java/patchjavaerror.src
svtools/source/misc/ehdl.cxx
svtools/source/misc/errtxt.src
svtools/source/misc/helpagentwindow.cxx
svtools/source/misc/imagemgr.cxx
svtools/source/misc/imagemgr.src
svtools/source/misc/imageresourceaccess.cxx
svtools/source/misc/imap.cxx
svtools/source/misc/langtab.src
svtools/source/misc/makefile.mk
svtools/source/misc/svtdata.cxx
svtools/source/misc/templatefoldercache.cxx
svtools/source/misc/transfer2.cxx
svtools/source/misc/undo.src
svtools/source/plugapp/commtest.cxx
svtools/source/plugapp/commtest.src
svtools/source/plugapp/makefile.mk
svtools/source/plugapp/testtool.src
svtools/source/productregistration/productregistration.cxx
svtools/source/svhtml/htmlkywd.cxx
svtools/source/svhtml/parhtml.cxx
svtools/source/svrtf/rtfkey2.cxx
svtools/source/svrtf/rtfkeywd.cxx
svtools/source/table/defaultinputhandler.cxx
svtools/source/table/makefile.mk
svtools/source/table/tablecontrol.cxx
svtools/source/table/tablecontrol_impl.cxx
svtools/source/table/tablecontrol_impl.hxx
svtools/source/table/tabledatawindow.cxx
svtools/source/table/tablegeometry.cxx
svtools/source/table/tablegeometry.hxx
svtools/source/toolpanel/makefile.mk
svtools/source/toolpanel/toolpaneldrawer.cxx
svtools/source/uno/addrtempuno.cxx
svtools/source/uno/miscservices.cxx
svtools/source/uno/svtxgridcontrol.cxx
svtools/source/uno/svtxgridcontrol.hxx
svtools/source/uno/toolboxcontroller.cxx
svtools/source/uno/treecontrolpeer.cxx
svtools/source/uno/unocontroltablemodel.cxx
svtools/source/uno/unocontroltablemodel.hxx
svtools/source/uno/unoimap.cxx
svtools/source/urlobj/inetimg.cxx
svtools/util/makefile.mk
svtools/workben/browser.cxx
svtools/workben/cui/makefile.mk
svtools/workben/makefile.mk
svtools/workben/stest.cxx
svtools/workben/toolpanel/makefile.mk
svtools/workben/urange.cxx
toolkit/inc/toolkit/awt/vclxdevice.hxx
toolkit/inc/toolkit/awt/vclxgraphics.hxx
toolkit/inc/toolkit/awt/vclxwindows.hxx
toolkit/inc/toolkit/controls/dialogcontrol.hxx
toolkit/inc/toolkit/helper/property.hxx
toolkit/inc/toolkit/helper/servicenames.hxx
toolkit/inc/toolkit/helper/throbberimpl.hxx
toolkit/qa/complex/toolkit/accessibility/_XAccessibleComponent.java
toolkit/source/awt/asynccallback.cxx
toolkit/source/awt/vclxgraphics.cxx
toolkit/source/awt/vclxtoolkit.cxx
toolkit/source/awt/vclxwindow.cxx
toolkit/source/awt/xsimpleanimation.cxx
toolkit/source/awt/xthrobber.cxx
toolkit/source/controls/dialogcontrol.cxx
toolkit/source/controls/grid/defaultgridcolumnmodel.cxx
toolkit/source/controls/grid/defaultgriddatamodel.cxx
toolkit/source/controls/grid/gridcontrol.cxx
toolkit/source/controls/grid/initguard.hxx
toolkit/source/controls/unocontrol.cxx
toolkit/source/controls/unocontrolcontainer.cxx
toolkit/source/controls/unocontrols.cxx
toolkit/source/helper/listenermultiplexer.cxx
toolkit/source/helper/property.cxx
toolkit/source/helper/registerservices.cxx
toolkit/source/helper/servicenames.cxx
toolkit/source/helper/throbberimpl.cxx
toolkit/source/helper/tkresmgr.cxx
tools/StaticLibrary_ooopathutils.mk
tools/bootstrp/addexes/makefile.mk
tools/bootstrp/addexes2/makefile.mk
tools/bootstrp/addexes2/mkfilt.cxx
tools/bootstrp/command.cxx
tools/bootstrp/cppdep.cxx
tools/bootstrp/iserver.cxx
tools/bootstrp/makefile.mk
tools/bootstrp/mkcreate.cxx
tools/bootstrp/prj.cxx
tools/bootstrp/rscdep.cxx
tools/bootstrp/sstring.cxx
tools/inc/bootstrp/command.hxx
tools/inc/bootstrp/mkcreate.hxx
tools/inc/bootstrp/prj.hxx
tools/inc/bootstrp/sstring.hxx
tools/inc/tools/agapi.hxx
tools/inc/tools/agitem.hxx
tools/inc/tools/chapi.hxx
tools/inc/tools/download.hxx
tools/inc/tools/eacopier.hxx
tools/inc/tools/fract.hxx
tools/inc/tools/fsys.hxx
tools/inc/tools/geninfo.hxx
tools/inc/tools/globname.hxx
tools/inc/tools/inetmime.hxx
tools/inc/tools/multisel.hxx
tools/inc/tools/poly.hxx
tools/inc/tools/postsys.h
tools/inc/tools/postwin.h
tools/inc/tools/presys.h
tools/inc/tools/prewin.h
tools/inc/tools/pstm.hxx
tools/inc/tools/ref.hxx
tools/inc/tools/simplerm.hxx
tools/inc/tools/solar.h
tools/inc/tools/table.hxx
tools/inc/tools/urlkeys.hxx
tools/inc/tools/urlobj.hxx
tools/prj/build.lst
tools/prj/d.lst
tools/qa/makefile.mk
tools/source/communi/geninfo.cxx
tools/source/debug/debug.cxx
tools/source/fsys/dirent.cxx
tools/source/fsys/tdir.cxx
tools/source/fsys/unx.cxx
tools/source/fsys/urlobj.cxx
tools/source/generic/color.cxx
tools/source/generic/config.cxx
tools/source/generic/fract.cxx
tools/source/inet/inetmime.cxx
tools/source/memtools/multisel.cxx
tools/source/memtools/table.cxx
tools/source/rc/resmgr.cxx
tools/source/ref/globname.cxx
tools/source/ref/pstm.cxx
tools/source/solar/solar.c
tools/source/stream/strmos2.cxx
tools/source/stream/strmunx.cxx
tools/source/stream/strmwnt.cxx
tools/source/string/makefile.mk
tools/source/testtoolloader/testtoolloader.cxx
tools/test/makefile.mk
tools/util/makefile.mk
tools/win/inc/dll.hxx
tools/win/inc/parser.hxx
tools/win/inc/shellex.h
tools/win/inc/shutil.h
tools/win/inc/toolsdll.hxx
tools/win/inc/winshell.hxx
tools/workben/makefile.mk
ucbhelper/source/client/proxydecider.cxx
ucbhelper/workben/ucbexplorer/ucbexplorer.hrc
unotools/inc/unotools/unotunnelhelper.hxx
unotools/source/config/fltrcfg.cxx
unotools/source/config/lingucfg.cxx
unotools/source/config/misccfg.cxx
unotools/source/config/pathoptions.cxx
unotools/source/config/searchopt.cxx
unotools/source/i18n/localedatawrapper.cxx
unotools/source/ucbhelper/localfilehelper.cxx
unotools/source/ucbhelper/ucbhelper.cxx
unotools/source/ucbhelper/xtempfile.cxx
vcl/aqua/inc/salbmp.h
vcl/aqua/inc/salgdi.h
vcl/aqua/inc/salinst.h
vcl/aqua/source/app/salinst.cxx
vcl/aqua/source/gdi/aquaprintaccessoryview.mm
vcl/aqua/source/gdi/salgdi.cxx
vcl/aqua/source/gdi/salprn.cxx
vcl/aqua/source/window/salframeview.mm
vcl/aqua/source/window/salobj.cxx
vcl/inc/vcl/bitmap.hxx
vcl/inc/vcl/brdwin.hxx
vcl/inc/vcl/button.hxx
vcl/inc/vcl/cmdevt.hxx
vcl/inc/vcl/cvtgrf.hxx
vcl/inc/vcl/dialog.hxx
vcl/inc/vcl/dockwin.hxx
vcl/inc/vcl/event.hxx
vcl/inc/vcl/fixed.hxx
vcl/inc/vcl/fldunit.hxx
vcl/inc/vcl/floatwin.hxx
vcl/inc/vcl/gdimtf.hxx
vcl/inc/vcl/glyphcache.hxx
vcl/inc/vcl/graphite_adaptors.hxx
vcl/inc/vcl/graphite_features.hxx
vcl/inc/vcl/graphite_layout.hxx
vcl/inc/vcl/ilstbox.hxx
vcl/inc/vcl/image.h
vcl/inc/vcl/imgctrl.hxx
vcl/inc/vcl/impbmpconv.hxx
vcl/inc/vcl/impprn.hxx
vcl/inc/vcl/jobset.h
vcl/inc/vcl/keycodes.hxx
vcl/inc/vcl/lstbox.hxx
vcl/inc/vcl/mapunit.hxx
vcl/inc/vcl/menu.hxx
vcl/inc/vcl/msgbox.hxx
vcl/inc/vcl/outdev.hxx
vcl/inc/vcl/prndlg.hxx
vcl/inc/vcl/salatype.hxx
vcl/inc/vcl/salbmp.hxx
vcl/inc/vcl/salgdi.hxx
vcl/inc/vcl/salinst.hxx
vcl/inc/vcl/seleng.hxx
vcl/inc/vcl/settings.hxx
vcl/inc/vcl/smartid.hxx
vcl/inc/vcl/status.hxx
vcl/inc/vcl/strhelper.hxx
vcl/inc/vcl/svapp.hxx
vcl/inc/vcl/svdata.hxx
vcl/inc/vcl/syschild.hxx
vcl/inc/vcl/sysdata.hxx
vcl/inc/vcl/taskpanelist.hxx
vcl/inc/vcl/toolbox.hxx
vcl/inc/vcl/vclevent.hxx
vcl/inc/vcl/windata.hxx
vcl/inc/vcl/window.hxx
vcl/inc/vcl/wintypes.hxx
vcl/os2/source/app/salinst.cxx
vcl/os2/source/gdi/salgdi.cxx
vcl/os2/source/window/salmenu.cxx
vcl/os2/source/window/salobj.cxx
vcl/prj/build.lst
vcl/source/app/dbggui.cxx
vcl/source/app/help.cxx
vcl/source/app/idlemgr.cxx
vcl/source/app/settings.cxx
vcl/source/app/svapp.cxx
vcl/source/app/svdata.cxx
vcl/source/app/svmain.cxx
vcl/source/app/svmainhook.cxx
vcl/source/app/unohelp.cxx
vcl/source/app/vclevent.cxx
vcl/source/control/button.cxx
vcl/source/control/combobox.cxx
vcl/source/control/edit.cxx
vcl/source/control/field.cxx
vcl/source/control/fixed.cxx
vcl/source/control/ilstbox.cxx
vcl/source/control/imgctrl.cxx
vcl/source/control/makefile.mk
vcl/source/control/tabctrl.cxx
vcl/source/gdi/bitmap.cxx
vcl/source/gdi/bitmap2.cxx
vcl/source/gdi/bitmap4.cxx
vcl/source/gdi/bmpconv.cxx
vcl/source/gdi/cvtsvm.cxx
vcl/source/gdi/font.cxx
vcl/source/gdi/gdimtf.cxx
vcl/source/gdi/image.cxx
vcl/source/gdi/impimage.cxx
vcl/source/gdi/jobset.cxx
vcl/source/gdi/makefile.mk
vcl/source/gdi/metaact.cxx
vcl/source/gdi/outdev.cxx
vcl/source/gdi/outdev3.cxx
vcl/source/gdi/outdev4.cxx
vcl/source/gdi/outdevnative.cxx
vcl/source/gdi/pdfwriter.cxx
vcl/source/gdi/pdfwriter_impl.cxx
vcl/source/gdi/print3.cxx
vcl/source/gdi/salmisc.cxx
vcl/source/glyphs/gcach_ftyp.cxx
vcl/source/glyphs/gcach_ftyp.hxx
vcl/source/glyphs/glyphcache.cxx
vcl/source/glyphs/graphite_cache.cxx
vcl/source/glyphs/graphite_layout.cxx
vcl/source/glyphs/graphite_textsrc.hxx
vcl/source/helper/canvasbitmap.cxx
vcl/source/helper/smartid.cxx
vcl/source/helper/xconnection.cxx
vcl/source/src/btntext.src
vcl/source/src/images.src
vcl/source/src/print.src
vcl/source/window/accel.cxx
vcl/source/window/accmgr.cxx
vcl/source/window/brdwin.cxx
vcl/source/window/btndlg.cxx
vcl/source/window/dlgctrl.cxx
vcl/source/window/javachild.cxx
vcl/source/window/menu.cxx
vcl/source/window/msgbox.cxx
vcl/source/window/printdlg.cxx
vcl/source/window/status.cxx
vcl/source/window/syschild.cxx
vcl/source/window/toolbox.cxx
vcl/source/window/toolbox2.cxx
vcl/source/window/window.cxx
vcl/source/window/window2.cxx
vcl/source/window/wrkwin.cxx
vcl/unx/gtk/app/gtkdata.cxx
vcl/unx/gtk/app/gtkinst.cxx
vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
vcl/unx/gtk/window/gtkframe.cxx
vcl/unx/gtk/window/gtkobject.cxx
vcl/unx/headless/svpbmp.hxx
vcl/unx/headless/svpgdi.cxx
vcl/unx/headless/svpgdi.hxx
vcl/unx/headless/svpinst.cxx
vcl/unx/headless/svpinst.hxx
vcl/unx/headless/svpprn.cxx
vcl/unx/headless/svpprn.hxx
vcl/unx/headless/svppspgraphics.cxx
vcl/unx/headless/svppspgraphics.hxx
vcl/unx/headless/svptext.cxx
vcl/unx/inc/dtint.hxx
vcl/unx/inc/plugins/gtk/gtkdata.hxx
vcl/unx/inc/pspgraphics.h
vcl/unx/inc/salbmp.h
vcl/unx/inc/saldata.hxx
vcl/unx/inc/saldisp.hxx
vcl/unx/inc/salgdi.h
vcl/unx/inc/salinst.h
vcl/unx/inc/xfont.hxx
vcl/unx/kde/kdedata.cxx
vcl/unx/kde4/KDESalGraphics.cxx
vcl/unx/source/app/keysymnames.cxx
vcl/unx/source/app/saldata.cxx
vcl/unx/source/app/saldisp.cxx
vcl/unx/source/app/salinst.cxx
vcl/unx/source/app/wmadaptor.cxx
vcl/unx/source/dtrans/X11_selection.cxx
vcl/unx/source/dtrans/X11_service.cxx
vcl/unx/source/gdi/makefile.mk
vcl/unx/source/gdi/pspgraphics.cxx
vcl/unx/source/gdi/salgdi.cxx
vcl/unx/source/gdi/salgdi3.cxx
vcl/unx/source/gdi/salprnpsp.cxx
vcl/unx/source/gdi/xfont.cxx
vcl/unx/source/gdi/xlfd_attr.cxx
vcl/unx/source/gdi/xlfd_attr.hxx
vcl/unx/source/gdi/xlfd_extd.cxx
vcl/unx/source/gdi/xlfd_extd.hxx
vcl/unx/source/gdi/xlfd_smpl.cxx
vcl/unx/source/gdi/xlfd_smpl.hxx
vcl/unx/source/printer/ppdparser.cxx
vcl/unx/source/printer/printerinfomanager.cxx
vcl/unx/source/window/salframe.cxx
vcl/unx/source/window/salmenu.cxx
vcl/unx/source/window/salobj.cxx
vcl/util/makefile2.pmk
vcl/win/inc/salbmp.h
vcl/win/inc/saldata.hxx
vcl/win/inc/salgdi.h
vcl/win/inc/salinst.h
vcl/win/source/app/saldata.cxx
vcl/win/source/app/salinst.cxx
vcl/win/source/gdi/salgdi.cxx
vcl/win/source/gdi/salgdi3.cxx
vcl/win/source/gdi/salprn.cxx
vcl/win/source/gdi/winlayout.cxx
vcl/win/source/window/salframe.cxx
vcl/win/source/window/salobj.cxx
vcl/workben/outdevgrind.cxx
vos/inc/vos/execabl.hxx
vos/inc/vos/macros.hxx
vos/inc/vos/pipe.hxx
vos/inc/vos/process.hxx
vos/inc/vos/refernce.hxx
vos/inc/vos/signal.hxx
vos/inc/vos/socket.hxx
vos/inc/vos/stream.hxx
vos/inc/vos/thread.hxx
vos/source/pipe.cxx
vos/source/process.cxx
vos/source/signal.cxx
vos/source/thread.cxx
vos/source/timer.cxx
2011-03-11 14:24:23 +01:00
|
|
|
const OUString UiEventsLogger_Impl::URL_SPECIAL(RTL_CONSTASCII_USTRINGPARAM(".special:"));
|
2010-10-25 16:57:01 +01:00
|
|
|
const OUString UiEventsLogger_Impl::URL_FILE(RTL_CONSTASCII_USTRINGPARAM("file:"));
|
2008-07-17 14:33:53 +00:00
|
|
|
|
2011-04-02 16:27:05 +01:00
|
|
|
namespace
|
|
|
|
{
|
|
|
|
struct theSingletonMutex : public rtl::Static< Mutex, theSingletonMutex > {};
|
|
|
|
}
|
2008-07-17 14:33:53 +00:00
|
|
|
|
|
|
|
// public UiEventsLogger interface
|
|
|
|
sal_Bool UiEventsLogger::isEnabled()
|
|
|
|
{
|
2009-09-08 04:57:32 +00:00
|
|
|
if ( UiEventsLogger_Impl::getEnabledFromCfg() )
|
|
|
|
{
|
|
|
|
try {
|
2011-04-02 16:27:05 +01:00
|
|
|
Guard<Mutex> singleton_guard(theSingletonMutex::get());
|
2009-09-08 04:57:32 +00:00
|
|
|
return UiEventsLogger_Impl::getInstance()->m_Active;
|
|
|
|
} catch(...) { return false; } // never throws
|
|
|
|
} // if ( )
|
|
|
|
return sal_False;
|
2008-07-17 14:33:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
sal_Int32 UiEventsLogger::getSessionLogEventCount()
|
|
|
|
{
|
2009-02-13 11:55:44 +00:00
|
|
|
try {
|
2011-04-02 16:27:05 +01:00
|
|
|
Guard<Mutex> singleton_guard(theSingletonMutex::get());
|
2009-02-13 11:55:44 +00:00
|
|
|
return UiEventsLogger_Impl::getInstance()->m_SessionLogEventCount;
|
|
|
|
} catch(...) { return 0; } // never throws
|
2008-07-17 14:33:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void UiEventsLogger::appendDispatchOrigin(
|
|
|
|
Sequence<PropertyValue>& args,
|
2008-11-19 16:40:06 +00:00
|
|
|
const OUString& originapp,
|
|
|
|
const OUString& originwidget)
|
2008-07-17 14:33:53 +00:00
|
|
|
{
|
|
|
|
sal_Int32 old_length = args.getLength();
|
2008-11-19 16:40:06 +00:00
|
|
|
args.realloc(old_length+2);
|
|
|
|
args[old_length].Name = UiEventsLogger_Impl::LOGORIGINAPP;
|
|
|
|
args[old_length].Value = static_cast<Any>(originapp);
|
|
|
|
args[old_length+1].Name = UiEventsLogger_Impl::LOGORIGINWIDGET;
|
|
|
|
args[old_length+1].Value = static_cast<Any>(originwidget);
|
2008-07-17 14:33:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
Sequence<PropertyValue> UiEventsLogger::purgeDispatchOrigin(
|
|
|
|
const Sequence<PropertyValue>& args)
|
|
|
|
{
|
2008-11-19 16:40:06 +00:00
|
|
|
Sequence<PropertyValue> result(args.getLength());
|
|
|
|
sal_Int32 target_idx=0;
|
|
|
|
for(sal_Int32 source_idx=0; source_idx<args.getLength(); source_idx++)
|
|
|
|
if(args[source_idx].Name != UiEventsLogger_Impl::LOGORIGINAPP
|
|
|
|
&& args[source_idx].Name != UiEventsLogger_Impl::LOGORIGINWIDGET)
|
|
|
|
result[target_idx++] = args[source_idx];
|
|
|
|
result.realloc(target_idx);
|
2008-07-17 14:33:53 +00:00
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
void UiEventsLogger::logDispatch(
|
|
|
|
const URL& url,
|
|
|
|
const Sequence<PropertyValue>& args)
|
|
|
|
{
|
|
|
|
try {
|
2011-04-02 16:27:05 +01:00
|
|
|
Guard<Mutex> singleton_guard(theSingletonMutex::get());
|
2009-02-13 11:55:44 +00:00
|
|
|
UiEventsLogger_Impl::getInstance()->logDispatch(url, args);
|
2008-07-17 14:33:53 +00:00
|
|
|
} catch(...) { } // never throws
|
|
|
|
}
|
|
|
|
|
|
|
|
void UiEventsLogger::logVcl(
|
|
|
|
const OUString& parent_id,
|
|
|
|
sal_Int32 window_type,
|
|
|
|
const OUString& id,
|
|
|
|
const OUString& method,
|
|
|
|
const OUString& param)
|
|
|
|
{
|
|
|
|
try {
|
2011-04-02 16:27:05 +01:00
|
|
|
Guard<Mutex> singleton_guard(theSingletonMutex::get());
|
2009-02-13 11:55:44 +00:00
|
|
|
UiEventsLogger_Impl::getInstance()->logVcl(parent_id, window_type, id, method, param);
|
2008-07-17 14:33:53 +00:00
|
|
|
} catch(...) { } // never throws
|
|
|
|
}
|
|
|
|
|
|
|
|
void UiEventsLogger::logVcl(
|
|
|
|
const OUString& parent_id,
|
|
|
|
sal_Int32 window_type,
|
|
|
|
const OUString& id,
|
|
|
|
const OUString& method,
|
|
|
|
sal_Int32 param)
|
|
|
|
{
|
|
|
|
OUStringBuffer buf;
|
|
|
|
UiEventsLogger::logVcl(parent_id, window_type, id, method, buf.append(param).makeStringAndClear());
|
|
|
|
}
|
|
|
|
|
|
|
|
void UiEventsLogger::logVcl(
|
|
|
|
const OUString& parent_id,
|
|
|
|
sal_Int32 window_type,
|
|
|
|
const OUString& id,
|
|
|
|
const OUString& method)
|
|
|
|
{
|
|
|
|
OUString empty;
|
|
|
|
UiEventsLogger::logVcl(parent_id, window_type, id, method, empty);
|
|
|
|
}
|
|
|
|
|
2008-12-16 08:01:40 +00:00
|
|
|
void UiEventsLogger::disposing()
|
|
|
|
{
|
2009-02-13 11:55:44 +00:00
|
|
|
// we dont want to create an instance just to dispose it
|
2011-04-02 16:27:05 +01:00
|
|
|
Guard<Mutex> singleton_guard(theSingletonMutex::get());
|
2008-12-16 08:01:40 +00:00
|
|
|
if(UiEventsLogger_Impl::instance!=UiEventsLogger_Impl::ptr())
|
2009-02-13 11:55:44 +00:00
|
|
|
UiEventsLogger_Impl::getInstance()->disposing();
|
|
|
|
}
|
|
|
|
|
|
|
|
void UiEventsLogger::reinit()
|
|
|
|
{
|
2011-04-02 16:27:05 +01:00
|
|
|
Guard<Mutex> singleton_guard(theSingletonMutex::get());
|
2009-02-13 11:55:44 +00:00
|
|
|
if(UiEventsLogger_Impl::instance)
|
|
|
|
{
|
2008-12-16 08:01:40 +00:00
|
|
|
UiEventsLogger_Impl::instance->disposing();
|
2009-02-13 11:55:44 +00:00
|
|
|
delete UiEventsLogger_Impl::instance;
|
|
|
|
UiEventsLogger_Impl::instance = NULL;
|
|
|
|
}
|
2008-12-16 08:01:40 +00:00
|
|
|
}
|
|
|
|
|
2008-07-17 14:33:53 +00:00
|
|
|
// private UiEventsLogger_Impl methods
|
|
|
|
UiEventsLogger_Impl::UiEventsLogger_Impl()
|
|
|
|
: m_Active(UiEventsLogger_Impl::shouldActivate())
|
|
|
|
, m_LogPath(UiEventsLogger_Impl::getLogPathFromCfg())
|
|
|
|
, m_IdleTimeout(UiEventsLogger_Impl::getIdleTimeoutFromCfg())
|
|
|
|
, m_SessionLogEventCount(0)
|
|
|
|
{
|
2008-11-19 16:40:06 +00:00
|
|
|
lcl_SetupOriginAppAbbr(m_OriginAppAbbr);
|
|
|
|
lcl_SetupOriginWidgetAbbr(m_OriginWidgetAbbr);
|
2008-07-17 14:33:53 +00:00
|
|
|
m_LastLogEventTime.Seconds = m_LastLogEventTime.Nanosec = 0;
|
|
|
|
if(m_Active) rotate();
|
|
|
|
if(m_Active) initializeLogger();
|
|
|
|
}
|
|
|
|
|
|
|
|
void UiEventsLogger_Impl::logDispatch(
|
|
|
|
const URL& url,
|
|
|
|
const Sequence<PropertyValue>& args)
|
|
|
|
{
|
|
|
|
if(!m_Active) return;
|
2010-08-26 18:03:40 +02:00
|
|
|
if(!url.Complete.match(URL_UNO)
|
|
|
|
&& !url.Complete.match(URL_FILE)
|
|
|
|
&& !url.Complete.match(URL_SPECIAL))
|
|
|
|
{
|
|
|
|
return;
|
|
|
|
}
|
2008-07-17 14:33:53 +00:00
|
|
|
checkIdleTimeout();
|
|
|
|
|
|
|
|
Sequence<OUString> logdata = Sequence<OUString>(COLUMNS);
|
|
|
|
logdata[0] = ETYPE_DISPATCH;
|
2008-11-19 16:40:06 +00:00
|
|
|
sal_Int32 originapp_idx = findIdx(args, LOGORIGINAPP);
|
|
|
|
if(originapp_idx!=-1)
|
|
|
|
{
|
|
|
|
OUString app;
|
|
|
|
args[originapp_idx].Value >>= app;
|
|
|
|
map<OUString, OUString>::iterator abbr_it = m_OriginAppAbbr.find(app);
|
|
|
|
if(abbr_it != m_OriginAppAbbr.end())
|
|
|
|
app = abbr_it->second;
|
|
|
|
logdata[1] = app;
|
|
|
|
}
|
2008-07-17 14:33:53 +00:00
|
|
|
else
|
|
|
|
logdata[1] = UNKNOWN_ORIGIN;
|
2008-11-19 16:40:06 +00:00
|
|
|
sal_Int32 originwidget_idx = findIdx(args, LOGORIGINWIDGET);
|
|
|
|
if(originwidget_idx!=-1)
|
|
|
|
{
|
|
|
|
OUString widget;
|
|
|
|
args[originwidget_idx].Value >>= widget;
|
|
|
|
map<OUString, OUString>::iterator widget_it = m_OriginWidgetAbbr.find(widget);
|
|
|
|
if(widget_it != m_OriginWidgetAbbr.end())
|
|
|
|
widget = widget_it->second;
|
|
|
|
logdata[2] = widget;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
logdata[2] = UNKNOWN_ORIGIN;
|
|
|
|
if(url.Complete.match(URL_FILE))
|
|
|
|
logdata[3] = URL_FILE;
|
2009-07-16 16:59:45 +00:00
|
|
|
else
|
|
|
|
logdata[3] = url.Main;
|
2009-10-14 12:56:03 +00:00
|
|
|
OSL_TRACE("UiEventsLogger Logging: %s,%s,%s,%s,%s,%s,%s,%s",
|
|
|
|
OUStringToOString(logdata[0],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[1],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[2],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[3],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[4],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[5],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[6],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[7],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[8],RTL_TEXTENCODING_UTF8).getStr());
|
2008-07-17 14:33:53 +00:00
|
|
|
m_Logger->log(LogLevel::INFO, m_Formatter->formatMultiColumn(logdata));
|
|
|
|
m_SessionLogEventCount++;
|
|
|
|
}
|
|
|
|
|
|
|
|
void UiEventsLogger_Impl::logRotated()
|
|
|
|
{
|
|
|
|
Sequence<OUString> logdata = Sequence<OUString>(COLUMNS);
|
|
|
|
logdata[0] = ETYPE_ROTATED;
|
2009-10-14 12:56:03 +00:00
|
|
|
OSL_TRACE("UiEventsLogger Logging: %s,%s,%s,%s,%s,%s,%s,%s",
|
|
|
|
OUStringToOString(logdata[0],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[1],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[2],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[3],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[4],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[5],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[6],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[7],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[8],RTL_TEXTENCODING_UTF8).getStr());
|
2008-07-17 14:33:53 +00:00
|
|
|
m_Logger->log(LogLevel::INFO, m_Formatter->formatMultiColumn(logdata));
|
|
|
|
}
|
|
|
|
|
|
|
|
void UiEventsLogger_Impl::logVcl(
|
|
|
|
const OUString& parent_id,
|
|
|
|
sal_Int32 window_type,
|
|
|
|
const OUString& id,
|
|
|
|
const OUString& method,
|
|
|
|
const OUString& param)
|
|
|
|
{
|
2008-12-16 08:01:40 +00:00
|
|
|
if(!m_Active) return;
|
2008-07-17 14:33:53 +00:00
|
|
|
checkIdleTimeout();
|
|
|
|
|
|
|
|
OUStringBuffer buf;
|
|
|
|
Sequence<OUString> logdata = Sequence<OUString>(COLUMNS);
|
|
|
|
logdata[0] = ETYPE_VCL;
|
2008-11-19 16:40:06 +00:00
|
|
|
logdata[4] = parent_id;
|
|
|
|
logdata[5] = buf.append(window_type).makeStringAndClear();
|
|
|
|
logdata[6] = id;
|
|
|
|
logdata[7] = method;
|
|
|
|
logdata[8] = param;
|
2009-10-14 12:56:03 +00:00
|
|
|
OSL_TRACE("UiEventsLogger Logging: %s,%s,%s,%s,%s,%s,%s,%s",
|
|
|
|
OUStringToOString(logdata[0],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[1],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[2],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[3],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[4],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[5],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[6],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[7],RTL_TEXTENCODING_UTF8).getStr(),
|
|
|
|
OUStringToOString(logdata[8],RTL_TEXTENCODING_UTF8).getStr());
|
2008-07-17 14:33:53 +00:00
|
|
|
m_Logger->log(LogLevel::INFO, m_Formatter->formatMultiColumn(logdata));
|
|
|
|
m_SessionLogEventCount++;
|
|
|
|
}
|
|
|
|
|
|
|
|
void UiEventsLogger_Impl::rotate()
|
|
|
|
{
|
|
|
|
FileBase::RC result = File::move(getCurrentPath(), getRotatedPath());
|
|
|
|
if(result!=FileBase::E_None && result!=FileBase::E_NOENT)
|
|
|
|
m_Active = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
void UiEventsLogger_Impl::hotRotate()
|
|
|
|
{
|
|
|
|
logRotated();
|
|
|
|
m_Logger->removeLogHandler(m_LogHandler);
|
|
|
|
m_LogHandler = NULL;
|
|
|
|
rotate();
|
|
|
|
prepareLogHandler();
|
|
|
|
if(m_Formatter.is() && m_LogHandler.is() && m_Logger.is())
|
|
|
|
{
|
|
|
|
m_LogHandler->setFormatter(Reference<XLogFormatter>(m_Formatter, UNO_QUERY));
|
|
|
|
m_LogHandler->setLevel(LogLevel::ALL);
|
|
|
|
m_Logger->addLogHandler(m_LogHandler);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
m_Active = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
void UiEventsLogger_Impl::prepareLogHandler()
|
|
|
|
{
|
|
|
|
Reference<XMultiServiceFactory> sm = getProcessServiceFactory();
|
|
|
|
|
|
|
|
Sequence<Any> init_args = Sequence<Any>(1);
|
|
|
|
init_args[0] = static_cast<Any>(getCurrentPath());
|
|
|
|
Reference< XInterface > temp =
|
|
|
|
sm->createInstanceWithArguments(CSSL_FILEHANDLER, init_args);
|
|
|
|
m_LogHandler = Reference<XLogHandler>(temp, UNO_QUERY);
|
|
|
|
}
|
|
|
|
|
|
|
|
void UiEventsLogger_Impl::checkIdleTimeout()
|
|
|
|
{
|
|
|
|
TimeValue now;
|
|
|
|
osl_getSystemTime(&now);
|
|
|
|
if(now.Seconds - m_LastLogEventTime.Seconds > m_IdleTimeout.Seconds && m_SessionLogEventCount>0)
|
|
|
|
hotRotate();
|
|
|
|
m_LastLogEventTime = now;
|
|
|
|
}
|
|
|
|
|
|
|
|
OUString UiEventsLogger_Impl::getCurrentPath()
|
|
|
|
{
|
|
|
|
OUStringBuffer current_path(m_LogPath);
|
|
|
|
current_path.appendAscii("/");
|
|
|
|
current_path.append(FN_CURRENTLOG);
|
|
|
|
current_path.appendAscii(".csv");
|
|
|
|
return current_path.makeStringAndClear();
|
|
|
|
}
|
|
|
|
|
|
|
|
OUString UiEventsLogger_Impl::getRotatedPath()
|
|
|
|
{
|
|
|
|
OUStringBuffer rotated_path(m_LogPath);
|
|
|
|
rotated_path.appendAscii("/");
|
|
|
|
rotated_path.append(FN_ROTATEDLOG);
|
|
|
|
rotated_path.appendAscii("-");
|
|
|
|
{
|
|
|
|
// ISO 8601
|
|
|
|
char tsrotated_pathfer[20];
|
|
|
|
oslDateTime now;
|
|
|
|
TimeValue now_tv;
|
|
|
|
osl_getSystemTime(&now_tv);
|
|
|
|
osl_getDateTimeFromTimeValue(&now_tv, &now);
|
|
|
|
const size_t rotated_pathfer_size = sizeof(tsrotated_pathfer);
|
|
|
|
snprintf(tsrotated_pathfer, rotated_pathfer_size, "%04i-%02i-%02iT%02i_%02i_%02i",
|
|
|
|
now.Year,
|
|
|
|
now.Month,
|
|
|
|
now.Day,
|
|
|
|
now.Hours,
|
|
|
|
now.Minutes,
|
|
|
|
now.Seconds);
|
|
|
|
rotated_path.appendAscii(tsrotated_pathfer);
|
|
|
|
rotated_path.appendAscii(".csv");
|
|
|
|
}
|
|
|
|
return rotated_path.makeStringAndClear();
|
|
|
|
}
|
|
|
|
|
|
|
|
void UiEventsLogger_Impl::initializeLogger()
|
|
|
|
{
|
|
|
|
Reference<XMultiServiceFactory> sm = getProcessServiceFactory();
|
|
|
|
|
2008-12-16 08:01:40 +00:00
|
|
|
// getting the Core Uno proxy object
|
|
|
|
// It will call disposing and make sure we clear all our references
|
|
|
|
{
|
|
|
|
Reference<XTerminateListener> xCore(
|
2010-10-25 16:57:01 +01:00
|
|
|
sm->createInstance(OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.oooimprovement.Core"))),
|
2008-12-16 08:01:40 +00:00
|
|
|
UNO_QUERY);
|
|
|
|
Reference<XDesktop> xDesktop(
|
2010-10-25 16:57:01 +01:00
|
|
|
sm->createInstance(OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.Desktop"))),
|
2008-12-16 08:01:40 +00:00
|
|
|
UNO_QUERY);
|
|
|
|
if(!(xCore.is() && xDesktop.is()))
|
|
|
|
{
|
|
|
|
m_Active = false;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
xDesktop->addTerminateListener(xCore);
|
|
|
|
}
|
2008-07-17 14:33:53 +00:00
|
|
|
// getting the LoggerPool
|
|
|
|
Reference<XLoggerPool> pool;
|
|
|
|
{
|
|
|
|
Reference<XInterface> temp =
|
|
|
|
sm->createInstance(CSSL_LOGGERPOOL);
|
|
|
|
pool = Reference<XLoggerPool>(temp, UNO_QUERY);
|
|
|
|
}
|
|
|
|
|
|
|
|
// getting the Logger
|
|
|
|
m_Logger = pool->getNamedLogger(LOGGERNAME);
|
|
|
|
|
|
|
|
// getting the FileHandler
|
|
|
|
prepareLogHandler();
|
|
|
|
|
|
|
|
// getting the Formatter
|
|
|
|
{
|
|
|
|
Reference<XInterface> temp =
|
|
|
|
sm->createInstance(CSSL_CSVFORMATTER);
|
|
|
|
m_Formatter = Reference<XCsvLogFormatter>(temp, UNO_QUERY);
|
|
|
|
}
|
|
|
|
|
|
|
|
if(m_Formatter.is() && m_LogHandler.is() && m_Logger.is())
|
|
|
|
{
|
|
|
|
Sequence<OUString> columns = Sequence<OUString>(COLUMNS);
|
2010-10-25 16:57:01 +01:00
|
|
|
columns[0] = OUString(RTL_CONSTASCII_USTRINGPARAM("eventtype"));
|
|
|
|
columns[1] = OUString(RTL_CONSTASCII_USTRINGPARAM("originapp"));
|
|
|
|
columns[2] = OUString(RTL_CONSTASCII_USTRINGPARAM("originwidget"));
|
|
|
|
columns[3] = OUString(RTL_CONSTASCII_USTRINGPARAM("uno url"));
|
|
|
|
columns[4] = OUString(RTL_CONSTASCII_USTRINGPARAM("parent id"));
|
|
|
|
columns[5] = OUString(RTL_CONSTASCII_USTRINGPARAM("window type"));
|
|
|
|
columns[6] = OUString(RTL_CONSTASCII_USTRINGPARAM("id"));
|
|
|
|
columns[7] = OUString(RTL_CONSTASCII_USTRINGPARAM("method"));
|
|
|
|
columns[8] = OUString(RTL_CONSTASCII_USTRINGPARAM("parameter"));
|
2008-07-17 14:33:53 +00:00
|
|
|
m_Formatter->setColumnnames(columns);
|
|
|
|
m_LogHandler->setFormatter(Reference<XLogFormatter>(m_Formatter, UNO_QUERY));
|
|
|
|
m_Logger->setLevel(LogLevel::ALL);
|
|
|
|
m_LogHandler->setLevel(LogLevel::ALL);
|
|
|
|
m_Logger->addLogHandler(m_LogHandler);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
m_Active = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
// private static UiEventsLogger_Impl
|
|
|
|
bool UiEventsLogger_Impl::shouldActivate()
|
|
|
|
{
|
|
|
|
return getEnabledFromCfg() && getEnabledFromCoreController();
|
|
|
|
}
|
|
|
|
|
|
|
|
OUString UiEventsLogger_Impl::getLogPathFromCfg()
|
|
|
|
{
|
|
|
|
OUString result;
|
|
|
|
Reference<XMultiServiceFactory> sm = getProcessServiceFactory();
|
|
|
|
|
|
|
|
ConfigurationHelper::readDirectKey(
|
|
|
|
sm,
|
|
|
|
CFG_LOGGING, CFG_OOOIMPROVEMENT, CFG_LOGPATH,
|
|
|
|
ConfigurationHelper::E_READONLY
|
|
|
|
) >>= result;
|
|
|
|
|
|
|
|
Reference<XStringSubstitution> path_sub(
|
|
|
|
sm->createInstance(CSSU_PATHSUB),
|
|
|
|
UNO_QUERY);
|
|
|
|
if(path_sub.is())
|
|
|
|
result = path_sub->substituteVariables(result, sal_False);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
TimeValue UiEventsLogger_Impl::getIdleTimeoutFromCfg()
|
|
|
|
{
|
|
|
|
sal_Int32 timeoutminutes = 360;
|
|
|
|
Reference<XMultiServiceFactory> sm = getProcessServiceFactory();
|
|
|
|
|
|
|
|
ConfigurationHelper::readDirectKey(
|
|
|
|
sm,
|
|
|
|
CFG_LOGGING, CFG_OOOIMPROVEMENT, CFG_IDLETIMEOUT,
|
|
|
|
ConfigurationHelper::E_READONLY
|
|
|
|
) >>= timeoutminutes;
|
|
|
|
TimeValue result;
|
|
|
|
result.Seconds = static_cast<sal_uInt32>(timeoutminutes)*60;
|
|
|
|
result.Nanosec = 0;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool UiEventsLogger_Impl::getEnabledFromCfg()
|
|
|
|
{
|
|
|
|
sal_Bool result = false;
|
|
|
|
Reference<XMultiServiceFactory> sm = getProcessServiceFactory();
|
|
|
|
ConfigurationHelper::readDirectKey(
|
|
|
|
sm,
|
|
|
|
CFG_LOGGING, CFG_OOOIMPROVEMENT, CFG_ENABLED,
|
|
|
|
::comphelper::ConfigurationHelper::E_READONLY
|
|
|
|
) >>= result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool UiEventsLogger_Impl::getEnabledFromCoreController()
|
|
|
|
{
|
|
|
|
Reference<XMultiServiceFactory> sm = getProcessServiceFactory();
|
|
|
|
Reference<XCoreController> core_c(
|
2010-10-25 16:57:01 +01:00
|
|
|
sm->createInstance(OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.oooimprovement.CoreController"))),
|
2008-07-17 14:33:53 +00:00
|
|
|
UNO_QUERY);
|
|
|
|
if(!core_c.is()) return false;
|
|
|
|
return core_c->enablingUiEventsLoggerAllowed(1);
|
|
|
|
}
|
|
|
|
|
|
|
|
UiEventsLogger_Impl::ptr UiEventsLogger_Impl::instance = UiEventsLogger_Impl::ptr();
|
|
|
|
UiEventsLogger_Impl::ptr UiEventsLogger_Impl::getInstance()
|
|
|
|
{
|
2009-02-13 11:55:44 +00:00
|
|
|
if(instance == NULL)
|
|
|
|
instance = UiEventsLogger_Impl::ptr(new UiEventsLogger_Impl());
|
|
|
|
return instance;
|
|
|
|
}
|
|
|
|
|
2008-11-19 16:40:06 +00:00
|
|
|
sal_Int32 UiEventsLogger_Impl::findIdx(const Sequence<PropertyValue>& args, const OUString& key)
|
2008-07-17 14:33:53 +00:00
|
|
|
{
|
|
|
|
for(sal_Int32 i=0; i<args.getLength(); i++)
|
2008-11-19 16:40:06 +00:00
|
|
|
if(args[i].Name == key)
|
2008-07-17 14:33:53 +00:00
|
|
|
return i;
|
|
|
|
return -1;
|
|
|
|
}
|
2008-12-16 08:01:40 +00:00
|
|
|
|
|
|
|
void UiEventsLogger_Impl::disposing()
|
|
|
|
{
|
|
|
|
m_Active = false;
|
|
|
|
m_Logger.clear() ;
|
|
|
|
m_LogHandler.clear();
|
|
|
|
m_Formatter.clear();
|
|
|
|
}
|
2008-07-17 14:33:53 +00:00
|
|
|
}
|
2010-10-14 08:27:31 +02:00
|
|
|
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|