View | Details | Raw Unified | Return to issue 26426
Collapse All | Expand All

(-)sd/sdi/_drvwsh.sdi.orig (+5 lines)
Lines 115-120 interface DrawView : View Link Here
115
        ExecMethod = FuTemporary ;
115
        ExecMethod = FuTemporary ;
116
        StateMethod = GetMenuState ;
116
        StateMethod = GetMenuState ;
117
    ]
117
    ]
118
	SID_SAVEGRAPHIC // ole : yes, status : ?
119
    [
120
        ExecMethod = FuTemporary ;
121
        StateMethod = GetMenuState ;
122
    ]
118
    SID_CUT // ole : no, status : ?
123
    SID_CUT // ole : no, status : ?
119
    [
124
    [
120
        ExecMethod = FuSupport ;
125
        ExecMethod = FuSupport ;
(-)sd/sdi/sdraw.sdi.orig (+24 lines)
Lines 5213-5218 SfxVoidItem OriginalSize SID_ORIGINAL_SI Link Here
5213
	GroupId = GID_MODIFY;
5213
	GroupId = GID_MODIFY;
5214
]
5214
]
5215
5215
5216
SfxVoidItem SaveGraphic SID_SAVEGRAPHIC
5217
()
5218
[
5219
	/* flags: */  
5220
	AutoUpdate = FALSE, 
5221
	Cachable = Cachable, 
5222
	FastCall = FALSE, 
5223
	HasCoreId = FALSE, 
5224
	HasDialog = FALSE, 
5225
	ReadOnlyDoc = TRUE, 
5226
	Toggle = FALSE, 
5227
	Container = FALSE, 
5228
	RecordAbsolute = FALSE, 
5229
	RecordPerSet;
5230
	Synchron;
5231
5232
	/* config: */ 
5233
	AccelConfig = FALSE, 
5234
	MenuConfig = FALSE, 
5235
	StatusBarConfig = FALSE, 
5236
	ToolBoxConfig = FALSE, 
5237
	GroupId = GID_MODIFY;
5238
]
5239
5216
//--------------------------------------------------------------------------
5240
//--------------------------------------------------------------------------
5217
SfxBoolItem OutlineMode SID_OUTLINEMODE
5241
SfxBoolItem OutlineMode SID_OUTLINEMODE
5218
5242
(-)sd/source/ui/app/menuids.src.orig (+37 lines)
Lines 3233-3238 Link Here
3233
		Text[ slovak ] = "Pôvodná veľko~sť";\
3233
		Text[ slovak ] = "Pôvodná veľko~sť";\
3234
	};
3234
	};
3235
3235
3236
#define MN_SAVEGRAPHIC\
3237
    MenuItem\
3238
    {\
3239
        Identifier = SID_SAVEGRAPHIC ; \
3240
        HelpID = SID_SAVEGRAPHIC ; \
3241
		Text = "~Grafik speichern..." ; \
3242
		Text [ English ] = "Save ~Image..." ; \
3243
		Text [ dutch ] = "Afbeelding ops~laan..." ; \
3244
		Text [ italian ] = "~Salva immagine..." ; \
3245
		Text [ spanish ] = "Guardar ~imagen..." ; \
3246
		Text [ french ] = "Enregistrer l'~image..." ; \
3247
		Text [ english_us ] = "Save Graphics..." ; \
3248
		Text [ swedish ] = "~Spara grafik..." ; \
3249
		Text [ danish ] = "~Gem grafik..." ; \
3250
		Text [ portuguese ] = "~Guardar imagem..." ; \
3251
		Text [ portuguese_brazilian ] = "Salvar Figura..." ; \
3252
		Text[ chinese_simplified ] = "存盘图形..."; \
3253
		Text[ russian ] = "Ñîõðàíèòü ãðàôè÷åñêèé îáúåêò..."; \
3254
		Text[ polish ] = "Zapisz grafikê..."; \
3255
		Text[ japanese ] = "図の保存..."; \
3256
		Text[ chinese_traditional ] = "儲存圖形..."; \
3257
		Text[ arabic ] = "...ÍÝÙ ÇáÕæÑÉ"; \
3258
		Text[ dutch ] = "Afbeelding ops~laan..."; \
3259
		Text[ chinese_simplified ] = "存盘图形..."; \
3260
		Text[ greek ] = "ÁðïèÞêåõóç ~ãñáöéêïý..."; \
3261
		Text[ korean ] = "그림 저장..."; \
3262
		Text[ turkish ] = "Grafiði kaydet..."; \
3263
		Text[ language_user1 ] = " "; \
3264
		Text[ catalan ] = "Desa ~imatge..."; \
3265
		Text[ finnish ] = "Tallenna grafiikka..."; \
3266
		Text[ thai ] = "บันทึกกราฟิค..."; \
3267
		Text[ czech ] = "Uložit obrázek"; \
3268
		Text[ hebrew ] = "Save ~Image..." ; \
3269
		Text[ hindi ] = "सुचित्रों को संचित करो..."; \
3270
		Text[ slovak ] = "Uložiť obrázok"; \
3271
	};
3272
3236
#define MN_STARIMAGE\
3273
#define MN_STARIMAGE\
3237
    MenuItem\
3274
    MenuItem\
3238
    {\
3275
    {\
(-)sd/source/ui/app/popup2.src.orig (+1 lines)
Lines 528-533 Link Here
528
		MN_ORIGINAL_SIZE
528
		MN_ORIGINAL_SIZE
529
		MN_STARIMAGE
529
		MN_STARIMAGE
530
		MN_COLORRESOLUTION
530
		MN_COLORRESOLUTION
531
		MN_SAVEGRAPHIC
531
		SEPARATOR
532
		SEPARATOR
532
		MN_CHAR_PARAGRAPH
533
		MN_CHAR_PARAGRAPH
533
		SEPARATOR
534
		SEPARATOR
(-)sd/source/ui/view/drviews2.cxx.orig (+115 lines)
Lines 145-150 Link Here
145
#ifndef _SVX_DLG_NAME_HXX
145
#ifndef _SVX_DLG_NAME_HXX
146
#include <svx/dlgname.hxx>
146
#include <svx/dlgname.hxx>
147
#endif
147
#endif
148
#ifndef INCLUDED_SVTOOLS_PATHOPTIONS_HXX
149
#include <svtools/pathoptions.hxx>
150
#endif
151
#ifndef _COM_SUN_STAR_UI_DIALOGS_XFILEPICKER_HPP_
152
#include <com/sun/star/ui/dialogs/XFilePicker.hpp>
153
#endif
154
#ifndef _COM_SUN_STAR_UI_DIALOGS_XFILTERMANAGER_HPP_
155
#include <com/sun/star/ui/dialogs/XFilterManager.hpp>
156
#endif
157
#ifndef  _COM_SUN_STAR_UI_DIALOGS_TEMPLATEDESCRIPTION_HPP_
158
#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
159
#endif
160
#ifndef _FILEDLGHELPER_HXX
161
#include <sfx2/filedlghelper.hxx>
162
#endif
163
#ifndef _URLOBJ_HXX
164
#include <tools/urlobj.hxx>
165
#endif
166
#ifndef _FILTER_HXX
167
#include <svtools/filter.hxx>
168
#endif
169
#ifndef _SVX_IMPGRF_HXX
170
#include <svx/impgrf.hxx>
171
#endif
172
#ifndef _XOUTBMP_HXX
173
#include <svx/xoutbmp.hxx>
174
#endif
148
175
149
#pragma hdrstop
176
#pragma hdrstop
150
177
Lines 1139-1144 void SdDrawViewShell::FuTemporary(SfxReq Link Here
1139
			rReq.Done();
1166
			rReq.Done();
1140
		break;
1167
		break;
1141
1168
1169
		case SID_SAVEGRAPHIC:
1170
			SaveGraphic();
1171
			Cancel();
1172
			rReq.Ignore();
1173
		break;
1174
1142
		default:
1175
		default:
1143
		{
1176
		{
1144
			// switch Anweisung wegen CLOOKS aufgeteilt. Alle case-Anweisungen die
1177
			// switch Anweisung wegen CLOOKS aufgeteilt. Alle case-Anweisungen die
Lines 1355-1357 void SdDrawViewShell::CreateOrDuplicateP Link Here
1355
        GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
1388
        GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, SFX_CALLMODE_ASYNCHRON);
1356
    rReq.Done ();
1389
    rReq.Done ();
1357
}
1390
}
1391
1392
// From sw/source/ui/docvw/romenu.cxx
1393
void lcl_GetPreferedExtension( String &rExt, const Graphic &rGrf )
1394
{
1395
	// dann ggfs. ueber die native-Info der Grafik den "besten"
1396
	// Filter vorschlagen
1397
	const sal_Char* pExt = "png";
1398
	switch( ((Graphic *)&rGrf)->GetLink().GetType() )
1399
	{
1400
		case GFX_LINK_TYPE_NATIVE_GIF:      pExt = "gif"; break;
1401
		case GFX_LINK_TYPE_NATIVE_TIF:      pExt = "tif"; break;
1402
		case GFX_LINK_TYPE_NATIVE_WMF:      pExt = "wmf"; break;
1403
		case GFX_LINK_TYPE_NATIVE_MET:      pExt = "met"; break;
1404
		case GFX_LINK_TYPE_NATIVE_PCT:		pExt = "pct"; break;
1405
		case GFX_LINK_TYPE_NATIVE_JPG:		pExt = "jpg"; break;
1406
	}
1407
	rExt.AssignAscii( pExt );
1408
}
1409
1410
void SdDrawViewShell::SaveGraphic()
1411
{
1412
 	using namespace ::com::sun::star::uno;
1413
	using namespace com::sun::star::ui::dialogs;
1414
	using namespace ::sfx2;
1415
1416
	SvtPathOptions aPathOpt;
1417
	String sGrfPath( aPathOpt.GetGraphicPath() );
1418
1419
    FileDialogHelper aDlgHelper( TemplateDescription::FILESAVE_SIMPLE, 0 );
1420
    Reference < XFilePicker > xFP = aDlgHelper.GetFilePicker();
1421
1422
	INetURLObject aPath;
1423
	aPath.SetSmartURL( sGrfPath);
1424
1425
	SdrGrafObj *pGrafObj = PTR_CAST( SdrGrafObj, pDrView->GetMarkList().GetMark( 0 )->GetObj() );
1426
	if (0 == pGrafObj )
1427
		return;
1428
1429
	const Graphic &rGraphic = pGrafObj->GetGraphic();
1430
1431
	String aExt;
1432
	lcl_GetPreferedExtension( aExt, rGraphic );
1433
	aExt.ToLowerAscii();
1434
	int nDfltFilter = INT_MAX;
1435
1436
    xFP->setDisplayDirectory( aPath.GetMainURL(INetURLObject::DECODE_TO_IURI) );
1437
1438
	GraphicFilter& rGF = *GetGrfFilter();
1439
	const USHORT nCount = rGF.GetExportFormatCount();
1440
1441
    Reference<XFilterManager> xFltMgr(xFP, UNO_QUERY);
1442
1443
	for ( int i = 0; i < nCount; i++ )
1444
	{
1445
        xFltMgr->appendFilter( rGF.GetExportFormatName( i ), rGF.GetExportWildcard( i ) );
1446
		if ( COMPARE_EQUAL == aExt.CompareIgnoreCaseToAscii(rGF.GetExportFormatShortName( i ).ToLowerAscii() ))
1447
			nDfltFilter = i;
1448
	}
1449
1450
	if( INT_MAX == nDfltFilter )
1451
		return;
1452
	
1453
	xFltMgr->setCurrentFilter( rGF.GetExportFormatName( nDfltFilter ) );
1454
1455
	if( aDlgHelper.Execute() == ERRCODE_NONE )
1456
	{
1457
		String sPath( xFP->getFiles().getConstArray()[0] );
1458
		//verwendeten Pfad merken - bitte nicht wieder wegoptimieren!
1459
		aPath.SetSmartURL( sPath);
1460
		sGrfPath = aPath.GetPath();
1461
		
1462
		int nFilter;
1463
		if ( xFltMgr->getCurrentFilter().getLength() && rGF.GetExportFormatCount() )
1464
			nFilter = rGF.GetExportFormatNumber( xFltMgr->getCurrentFilter() );
1465
		else
1466
			nFilter = GRFILTER_FORMAT_DONTKNOW;
1467
		String aFilter( rGF.GetExportFormatShortName( nFilter ) );
1468
		XOutBitmap::WriteGraphic( rGraphic, sPath, aFilter,
1469
								  XOUTBMP_DONT_EXPAND_FILENAME );
1470
		return;
1471
	}
1472
}
(-)sd/source/ui/view/drviewsj.cxx.orig (-1 / +7 lines)
Lines 184-190 void SdDrawViewShell::GetMenuStateSel( S Link Here
184
			SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_BEFORE_OBJ ) ||
184
			SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_BEFORE_OBJ ) ||
185
			SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_BEHIND_OBJ ) ||
185
			SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_BEHIND_OBJ ) ||
186
			SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_REVERSE_ORDER ) ||
186
			SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_REVERSE_ORDER ) ||
187
			SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ORIGINAL_SIZE ) )
187
			SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ORIGINAL_SIZE ) ||
188
 			SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_SAVEGRAPHIC ) )
188
		{
189
		{
189
			const SdrObject* pObj = rMarkList.GetMark(0)->GetObj();
190
			const SdrObject* pObj = rMarkList.GetMark(0)->GetObj();
190
			UINT32 nInv = pObj->GetObjInventor();
191
			UINT32 nInv = pObj->GetObjInventor();
Lines 202-207 void SdDrawViewShell::GetMenuStateSel( S Link Here
202
					rSet.DisableItem(SID_ORIGINAL_SIZE);
203
					rSet.DisableItem(SID_ORIGINAL_SIZE);
203
			}
204
			}
204
205
206
			if ( !( pObj->ISA( SdrGrafObj ) ) )
207
			{
208
				rSet.DisableItem(SID_SAVEGRAPHIC);
209
			}
210
205
			// Wenn es sich um kein Gruppenobjekt oder 3D-Objekt handelt
211
			// Wenn es sich um kein Gruppenobjekt oder 3D-Objekt handelt
206
			// wird "Gruppe betreten" disabled
212
			// wird "Gruppe betreten" disabled
207
			if( !( ( pObj->ISA( SdrObjGroup ) && nInv == SdrInventor ) ||
213
			if( !( ( pObj->ISA( SdrObjGroup ) && nInv == SdrInventor ) ||
(-)sd/source/ui/inc/drviewsh.hxx.orig (+3 lines)
Lines 458-463 private: Link Here
458
            The request as passed to 
458
            The request as passed to 
459
    */
459
    */
460
    void CreateOrDuplicatePage (SfxRequest& rReq);
460
    void CreateOrDuplicatePage (SfxRequest& rReq);
461
462
	/** Saves the selected graphic to a user-specified file */
463
	void SdDrawViewShell::SaveGraphic( );
461
};
464
};
462
465
463
#endif		// _SD_DRVIEWSH_HXX
466
#endif		// _SD_DRVIEWSH_HXX
(-)sd/inc/app.hrc.orig (+2 lines)
Lines 465-467 Link Here
465
#define SID_PREVIEW_QUALITY_CONTRAST   		(SID_SD_START+401)
465
#define SID_PREVIEW_QUALITY_CONTRAST   		(SID_SD_START+401)
466
466
467
#define SID_RENAMEPAGE_QUICK                (SID_SD_START+405)
467
#define SID_RENAMEPAGE_QUICK                (SID_SD_START+405)
468
// FIXME get an official SID
469
#define SID_SAVEGRAPHIC						(SID_SD_START+450)

Return to issue 26426