summaryrefslogtreecommitdiff
path: root/sfx2/source/dialog
diff options
context:
space:
mode:
Diffstat (limited to 'sfx2/source/dialog')
-rw-r--r--sfx2/source/dialog/mailmodel.cxx137
-rw-r--r--sfx2/source/dialog/mgetempl.cxx12
-rw-r--r--sfx2/source/dialog/mgetempl.hrc1
-rw-r--r--sfx2/source/dialog/mgetempl.src8
-rw-r--r--sfx2/source/dialog/templdlg.cxx8
-rw-r--r--sfx2/source/dialog/versdlg.cxx2
6 files changed, 129 insertions, 39 deletions
diff --git a/sfx2/source/dialog/mailmodel.cxx b/sfx2/source/dialog/mailmodel.cxx
index 0e0c6ec22ee1..dfd099f6cf45 100644
--- a/sfx2/source/dialog/mailmodel.cxx
+++ b/sfx2/source/dialog/mailmodel.cxx
@@ -53,13 +53,11 @@
#include <com/sun/star/security/XDocumentDigitalSignatures.hpp>
#include <com/sun/star/frame/XDispatchProvider.hpp>
#include <com/sun/star/frame/XDispatch.hpp>
+#include <com/sun/star/frame/XStatusListener.hpp>
#include <com/sun/star/ucb/InsertCommandArgument.hpp>
#include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
#include <com/sun/star/document/XExporter.hpp>
-#ifndef _RTL_TEXTENC_H
-#include <rtl/textench.h>
-#endif
#include <rtl/uri.h>
#include <rtl/uri.hxx>
#include <rtl/ustrbuf.hxx>
@@ -84,6 +82,7 @@
#include <comphelper/mediadescriptor.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <vcl/svapp.hxx>
+#include <cppuhelper/implbase1.hxx>
// --------------------------------------------------------------
using namespace ::com::sun::star;
@@ -98,6 +97,54 @@ using namespace ::com::sun::star::system;
using namespace ::rtl;
namespace css = ::com::sun::star;
+// - class PrepareListener_Impl ------------------------------------------
+class PrepareListener_Impl : public ::cppu::WeakImplHelper1< css::frame::XStatusListener >
+{
+ bool m_bState;
+public:
+ PrepareListener_Impl();
+ virtual ~PrepareListener_Impl();
+
+ // css.frame.XStatusListener
+ virtual void SAL_CALL statusChanged(const css::frame::FeatureStateEvent& aEvent)
+ throw(css::uno::RuntimeException);
+
+ // css.lang.XEventListener
+ virtual void SAL_CALL disposing(const css::lang::EventObject& aEvent)
+ throw(css::uno::RuntimeException);
+
+ bool IsSet() const {return m_bState;}
+};
+
+/*-- 25.08.2010 14:32:49---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+PrepareListener_Impl::PrepareListener_Impl() :
+ m_bState( false )
+{
+}
+/*-- 25.08.2010 14:32:51---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+PrepareListener_Impl::~PrepareListener_Impl()
+{
+}
+/*-- 25.08.2010 14:32:51---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void PrepareListener_Impl::statusChanged(const css::frame::FeatureStateEvent& rEvent) throw(css::uno::RuntimeException)
+{
+ if( rEvent.IsEnabled )
+ rEvent.State >>= m_bState;
+ else
+ m_bState = sal_False;
+}
+/*-- 25.08.2010 14:32:52---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void PrepareListener_Impl::disposing(const css::lang::EventObject& /*rEvent*/) throw(css::uno::RuntimeException)
+{
+}
// class AddressList_Impl ------------------------------------------------
@@ -547,46 +594,68 @@ SfxMailModel::SaveResult SfxMailModel::SaveDocumentAsFormat(
aArgs[nNumArgs-1].Value = css::uno::makeAny( aPassword );
}
- if ( bModified || !bHasLocation || bStoreTo )
+ bool bNeedsPreparation = false;
+ css::util::URL aPrepareURL;
+ css::uno::Reference< css::frame::XDispatch > xPrepareDispatch;
+ css::uno::Reference< css::frame::XDispatchProvider > xDispatchProvider( xFrame, css::uno::UNO_QUERY );
+ css::uno::Reference< css::util::XURLTransformer > xURLTransformer(
+ xSMGR->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))),
+ css::uno::UNO_QUERY );
+ if( !bSendAsPDF )
{
- // Document is modified, is newly created or should be stored in a special format
try
{
- css::uno::Reference< css::util::XURLTransformer > xURLTransformer(
- xSMGR->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ))),
- css::uno::UNO_QUERY );
-
- css::uno::Reference< css::frame::XDispatchProvider > xDispatchProvider( xFrame, css::uno::UNO_QUERY );
- css::uno::Reference< css::frame::XDispatch > xDispatch;
+ // check if the document needs to be prepared for sending as mail (embedding of links, removal of invisible content)
- css::util::URL aURL;
- css::uno::Sequence< css::beans::PropertyValue > aDispatchArgs;
+ if ( xURLTransformer.is() )
+ {
+ aPrepareURL.Complete = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:PrepareMailExport" ));
+ xURLTransformer->parseStrict( aPrepareURL );
+ }
- if( !bSendAsPDF )
+ if ( xDispatchProvider.is() )
{
- if ( xURLTransformer.is() )
+ xPrepareDispatch = css::uno::Reference< css::frame::XDispatch >(
+ xDispatchProvider->queryDispatch( aPrepareURL, ::rtl::OUString(), 0 ));
+ if ( xPrepareDispatch.is() )
{
- aURL.Complete = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:PrepareMailExport" ));
- xURLTransformer->parseStrict( aURL );
+ PrepareListener_Impl* pPrepareListener;
+ uno::Reference< css::frame::XStatusListener > xStatusListener = pPrepareListener = new PrepareListener_Impl;
+ xPrepareDispatch->addStatusListener( xStatusListener, aPrepareURL );
+ bNeedsPreparation = pPrepareListener->IsSet();
+ xPrepareDispatch->removeStatusListener( xStatusListener, aPrepareURL );
}
+ }
+ }
+ catch ( css::uno::RuntimeException& )
+ {
+ throw;
+ }
+ catch ( css::uno::Exception& )
+ {
+ }
+ }
- if ( xDispatchProvider.is() )
+ if ( bModified || !bHasLocation || bStoreTo || bNeedsPreparation )
+ {
+ // Document is modified, is newly created or should be stored in a special format
+ try
+ {
+ if( bNeedsPreparation && xPrepareDispatch.is() )
+ {
+ if ( xPrepareDispatch.is() )
{
- xDispatch = css::uno::Reference< css::frame::XDispatch >(
- xDispatchProvider->queryDispatch( aURL, ::rtl::OUString(), 0 ));
- if ( xDispatch.is() )
+ try
+ {
+ css::uno::Sequence< css::beans::PropertyValue > aDispatchArgs;
+ xPrepareDispatch->dispatch( aPrepareURL, aDispatchArgs );
+ }
+ catch ( css::uno::RuntimeException& )
+ {
+ throw;
+ }
+ catch ( css::uno::Exception& )
{
- try
- {
- xDispatch->dispatch( aURL, aDispatchArgs );
- }
- catch ( css::uno::RuntimeException& )
- {
- throw;
- }
- catch ( css::uno::Exception& )
- {
- }
}
}
}
@@ -608,6 +677,7 @@ SfxMailModel::SaveResult SfxMailModel::SaveDocumentAsFormat(
if( !bSendAsPDF )
{
+ css::util::URL aURL;
// #i30432# notify that export is finished - the Writer may want to restore removed content
if ( xURLTransformer.is() )
{
@@ -617,12 +687,13 @@ SfxMailModel::SaveResult SfxMailModel::SaveDocumentAsFormat(
if ( xDispatchProvider.is() )
{
- xDispatch = css::uno::Reference< css::frame::XDispatch >(
+ css::uno::Reference< css::frame::XDispatch > xDispatch = css::uno::Reference< css::frame::XDispatch >(
xDispatchProvider->queryDispatch( aURL, ::rtl::OUString(), 0 ));
if ( xDispatch.is() )
{
try
{
+ css::uno::Sequence< css::beans::PropertyValue > aDispatchArgs;
xDispatch->dispatch( aURL, aDispatchArgs );
}
catch ( css::uno::RuntimeException& )
diff --git a/sfx2/source/dialog/mgetempl.cxx b/sfx2/source/dialog/mgetempl.cxx
index 1f5472cf2052..1666916b0c0b 100644
--- a/sfx2/source/dialog/mgetempl.cxx
+++ b/sfx2/source/dialog/mgetempl.cxx
@@ -65,6 +65,7 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage( Window* pParent, const SfxItem
aNameFt ( this, SfxResId( FT_NAME ) ),
aNameEd ( this, SfxResId( ED_NAME ) ),
+ aNameMLE ( this, SfxResId( MLE_NAME ) ),
aAutoCB ( this, SfxResId( CB_AUTO ) ),
aFollowFt ( this, SfxResId( FT_NEXT ) ),
@@ -147,8 +148,17 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage( Window* pParent, const SfxItem
}
aNameEd.SetText(pStyle->GetName());
- if ( !pStyle->IsUserDefined() )
+ // Set the field read-only if it is NOT an user-defined style
+ // but allow selecting and copying
+ if ( !pStyle->IsUserDefined() ) {
aNameEd.SetReadOnly();
+ aNameEd.Hide();
+
+ aNameMLE.SetControlBackground( GetSettings().GetStyleSettings().GetDialogColor() );
+ aNameMLE.SetText( pStyle->GetName() );
+ aNameMLE.EnableCursor( FALSE );
+ aNameMLE.Show();
+ }
if ( pStyle->HasFollowSupport() && pPool )
{
diff --git a/sfx2/source/dialog/mgetempl.hrc b/sfx2/source/dialog/mgetempl.hrc
index e998baba939d..a34700846f9c 100644
--- a/sfx2/source/dialog/mgetempl.hrc
+++ b/sfx2/source/dialog/mgetempl.hrc
@@ -25,6 +25,7 @@
*
************************************************************************/
#define ED_NAME 2
+#define MLE_NAME 13
#define LB_NEXT 4
#define FT_BASE 5
#define LB_BASE 6
diff --git a/sfx2/source/dialog/mgetempl.src b/sfx2/source/dialog/mgetempl.src
index bfa3948d90ac..c478ed715646 100644
--- a/sfx2/source/dialog/mgetempl.src
+++ b/sfx2/source/dialog/mgetempl.src
@@ -49,6 +49,14 @@ TabPage TP_MANAGE_STYLES
Pos = MAP_APPFONT ( 70 , 6 ) ;
Size = MAP_APPFONT ( 184 , 12 ) ;
};
+ MultiLineEdit MLE_NAME
+ {
+ Pos = MAP_APPFONT ( 70 , 8 ) ;
+ Size = MAP_APPFONT ( 80 , 12 ) ;
+ Border = FALSE;
+ ReadOnly = TRUE;
+ Hide = TRUE;
+ };
CheckBox CB_AUTO
{
HelpID = "sfx2:CheckBox:TP_MANAGE_STYLES:CB_AUTO";
diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx
index a3d9fd7b4ed2..88801d95f0d5 100644
--- a/sfx2/source/dialog/templdlg.cxx
+++ b/sfx2/source/dialog/templdlg.cxx
@@ -756,7 +756,7 @@ SfxCommonTemplateDialog_Impl::SfxCommonTemplateDialog_Impl( SfxBindings* pB, Sfx
DEFINE_CONST_UNICODE("com.sun.star.frame.ModuleManager") ), UNO_QUERY ),
pbDeleted ( NULL ),
- aFmtLb ( this, WB_BORDER | WB_TABSTOP | WB_SORT ),
+ aFmtLb ( this, WB_BORDER | WB_TABSTOP | WB_SORT | WB_QUICK_SEARCH ),
aFilterLb ( pW, WB_BORDER | WB_DROPDOWN | WB_TABSTOP ),
nActFamily ( 0xffff ),
@@ -780,7 +780,7 @@ SfxCommonTemplateDialog_Impl::SfxCommonTemplateDialog_Impl( SfxBindings* pB, Sfx
{
aFmtLb.SetHelpId( HID_TEMPLATE_FMT );
aFilterLb.SetHelpId( HID_TEMPLATE_FILTER );
- aFmtLb.SetWindowBits( WB_SORT | WB_HIDESELECTION );
+ aFmtLb.SetStyle( aFmtLb.GetStyle() | WB_SORT | WB_HIDESELECTION );
Font aFont = aFmtLb.GetFont();
aFont.SetWeight( WEIGHT_NORMAL );
aFmtLb.SetFont( aFont );
@@ -823,7 +823,7 @@ SfxCommonTemplateDialog_Impl::SfxCommonTemplateDialog_Impl( SfxBindings* pB, Mod
bBindingUpdate ( TRUE )
{
- aFmtLb.SetWindowBits( WB_SORT );
+ aFmtLb.SetStyle( aFmtLb.GetStyle() | WB_SORT );
}
//-------------------------------------------------------------------------
@@ -1776,7 +1776,7 @@ IMPL_LINK( SfxCommonTemplateDialog_Impl, FilterSelectHdl, ListBox *, pBox )
pTreeBox = new StyleTreeListBox_Impl(
this, WB_HASBUTTONS | WB_HASLINES |
WB_BORDER | WB_TABSTOP | WB_HASLINESATROOT |
- WB_HASBUTTONSATROOT | WB_HIDESELECTION );
+ WB_HASBUTTONSATROOT | WB_HIDESELECTION | WB_QUICK_SEARCH );
pTreeBox->SetFont( aFmtLb.GetFont() );
pTreeBox->SetPosSizePixel(aFmtLb.GetPosPixel(), aFmtLb.GetSizePixel());
diff --git a/sfx2/source/dialog/versdlg.cxx b/sfx2/source/dialog/versdlg.cxx
index beb43c192810..8e440de0757c 100644
--- a/sfx2/source/dialog/versdlg.cxx
+++ b/sfx2/source/dialog/versdlg.cxx
@@ -239,7 +239,7 @@ SfxVersionDialog::SfxVersionDialog ( SfxViewFrame* pVwFrame, BOOL bIsSaveVersion
aVersionBox.SetDoubleClickHdl( LINK( this, SfxVersionDialog, DClickHdl_Impl ) );
aVersionBox.GrabFocus();
- aVersionBox.SetWindowBits( WB_HSCROLL | WB_CLIPCHILDREN );
+ aVersionBox.SetStyle( aVersionBox.GetStyle() | WB_HSCROLL | WB_CLIPCHILDREN );
aVersionBox.SetSelectionMode( SINGLE_SELECTION );
aVersionBox.SetTabs( &nTabs_Impl[0], MAP_APPFONT );
aVersionBox.Resize(); // OS: Hack fuer richtige Selektion