dba34a: pulled DEV300.m88
This commit is contained in:
@@ -52,6 +52,7 @@
|
||||
#include <comphelper/synchronousdispatch.hxx>
|
||||
#include <comphelper/uieventslogger.hxx>
|
||||
#include <tools/testtoolloader.hxx>
|
||||
#include <osl/file.hxx>
|
||||
|
||||
#define C2S(s) ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(s))
|
||||
|
||||
@@ -61,6 +62,18 @@ namespace uno = ::com::sun::star::uno;
|
||||
namespace util = ::com::sun::star::util;
|
||||
using namespace com::sun::star::system;
|
||||
|
||||
|
||||
namespace
|
||||
{
|
||||
bool lcl_doesLogfileExist(const ::rtl::OUString& sLogPath)
|
||||
{
|
||||
::rtl::OUString sLogFile( sLogPath );
|
||||
sLogFile += C2S("/Current.csv");
|
||||
::osl::File aLogFile(sLogFile);
|
||||
return aLogFile.open(osl_File_OpenFlag_Read) == ::osl::FileBase::E_None;
|
||||
}
|
||||
}
|
||||
|
||||
// class SvxImprovementOptionsPage ---------------------------------------
|
||||
|
||||
SvxImprovementOptionsPage::SvxImprovementOptionsPage( Window* pParent, const SfxItemSet& rSet ) :
|
||||
@@ -143,7 +156,10 @@ IMPL_LINK( SvxImprovementOptionsPage, HandleShowData, PushButton*, EMPTYARG )
|
||||
uno::Reference< lang::XComponent > xDoc = ::comphelper::SynchronousDispatch::dispatch(
|
||||
xDesktop, sLogFile, C2S("_default"), 0, aArgs );
|
||||
if ( xDoc.is() )
|
||||
{
|
||||
dynamic_cast<Dialog*>(GetParent())->EndDialog( RET_CANCEL );
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -244,11 +260,13 @@ void SvxImprovementOptionsPage::Reset( const SfxItemSet& /*rSet*/ )
|
||||
if ( xSubst.is() )
|
||||
sPath = xSubst->substituteVariables( sPath, sal_False );
|
||||
m_sLogPath = sPath;
|
||||
m_aShowDataPB.Enable(lcl_doesLogfileExist(m_sLogPath));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch( uno::Exception& )
|
||||
{
|
||||
m_aShowDataPB.Enable(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -35,15 +35,21 @@
|
||||
#include "soapsender.hxx"
|
||||
|
||||
#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
|
||||
#include <com/sun/star/frame/XDesktop.hpp>
|
||||
#include <com/sun/star/frame/XTerminateListener.hpp>
|
||||
#include <osl/mutex.hxx>
|
||||
#include <osl/thread.hxx>
|
||||
#include <osl/time.h>
|
||||
#include <cppuhelper/implbase1.hxx>
|
||||
#include <memory>
|
||||
|
||||
|
||||
using namespace ::com::sun::star::beans;
|
||||
using namespace ::com::sun::star::lang;
|
||||
using namespace ::com::sun::star::task;
|
||||
using namespace ::com::sun::star::uno;
|
||||
using ::com::sun::star::frame::XTerminateListener;
|
||||
using ::com::sun::star::frame::XDesktop;
|
||||
using ::com::sun::star::ucb::XSimpleFileAccess;
|
||||
using ::rtl::OUString;
|
||||
using ::std::vector;
|
||||
@@ -102,7 +108,8 @@ namespace
|
||||
public:
|
||||
OnLogRotateThread(Reference<XMultiServiceFactory> sf);
|
||||
virtual void SAL_CALL run();
|
||||
void disposing();
|
||||
OnLogRotateThread* disposing();
|
||||
|
||||
private:
|
||||
Reference<XMultiServiceFactory> m_ServiceFactory;
|
||||
::osl::Mutex m_ServiceFactoryMutex;
|
||||
@@ -135,11 +142,35 @@ namespace
|
||||
}
|
||||
}
|
||||
|
||||
void OnLogRotateThread::disposing()
|
||||
OnLogRotateThread* OnLogRotateThread::disposing()
|
||||
{
|
||||
::osl::Guard< ::osl::Mutex> service_factory_guard(m_ServiceFactoryMutex);
|
||||
m_ServiceFactory.clear();
|
||||
return this;
|
||||
}
|
||||
|
||||
class OnLogRotateThreadWatcher : public ::cppu::WeakImplHelper1<XTerminateListener>
|
||||
{
|
||||
public:
|
||||
OnLogRotateThreadWatcher(Reference<XMultiServiceFactory> sf)
|
||||
: m_Thread(new OnLogRotateThread(sf))
|
||||
{
|
||||
m_Thread->create();
|
||||
}
|
||||
virtual ~OnLogRotateThreadWatcher()
|
||||
{ m_Thread->disposing()->terminate(); };
|
||||
|
||||
// XTerminateListener
|
||||
virtual void SAL_CALL queryTermination(const EventObject&) throw(RuntimeException)
|
||||
{ };
|
||||
virtual void SAL_CALL notifyTermination(const EventObject&) throw(RuntimeException)
|
||||
{ m_Thread->disposing()->terminate(); };
|
||||
// XEventListener
|
||||
virtual void SAL_CALL disposing(const EventObject&) throw(RuntimeException)
|
||||
{ m_Thread->disposing()->terminate(); };
|
||||
private:
|
||||
::std::auto_ptr<OnLogRotateThread> m_Thread;
|
||||
};
|
||||
}
|
||||
|
||||
namespace oooimprovement
|
||||
@@ -163,9 +194,11 @@ namespace oooimprovement
|
||||
const Reference<XJobListener>& listener)
|
||||
throw(RuntimeException)
|
||||
{
|
||||
OnLogRotateThread* thread = new OnLogRotateThread(m_ServiceFactory);
|
||||
thread->create();
|
||||
|
||||
Reference<XDesktop> xDesktop(
|
||||
m_ServiceFactory->createInstance(OUString::createFromAscii("com.sun.star.frame.Desktop")),
|
||||
UNO_QUERY);
|
||||
if(xDesktop.is())
|
||||
xDesktop->addTerminateListener(Reference<XTerminateListener>(new OnLogRotateThreadWatcher(m_ServiceFactory)));
|
||||
Any result;
|
||||
listener->jobFinished(Reference<XAsyncJob>(this), result);
|
||||
}
|
||||
|
@@ -384,7 +384,7 @@ void QueryPrintSignatureDetails( const SignatureInformations& SignatureInformati
|
||||
{
|
||||
char cShowDetails;
|
||||
fprintf( stdout, "\nDisplay details (y/n) [y]?" );
|
||||
fflush(stdin);
|
||||
fflush( stdout );
|
||||
fscanf( stdin, "%c", &cShowDetails);
|
||||
if ( cShowDetails == 'y' )
|
||||
{
|
||||
@@ -409,7 +409,7 @@ int QuerySelectNumber( int nMin, int nMax )
|
||||
do
|
||||
{
|
||||
fprintf( stdout, "\nSelect <%d-%d>:", nMin, nMax ) ;
|
||||
fflush(stdin);
|
||||
fflush( stdout );
|
||||
fscanf( stdin, "%d", &sel ) ;
|
||||
} while( ( sel < nMin ) || ( sel > nMax ) );
|
||||
|
||||
@@ -420,7 +420,7 @@ long QueryVerifySignature()
|
||||
{
|
||||
char answer;
|
||||
fprintf( stdout, "\nFound a signature - verify this one (y/n) [y]?" );
|
||||
fflush(stdin);
|
||||
fflush( stdout );
|
||||
fscanf( stdin, "%c", &answer);
|
||||
return (answer == 'n')?0:1;
|
||||
}
|
||||
|
Reference in New Issue
Block a user