[Libreoffice-commits] core.git: Branch 'feature/gsoc15-open-remote-files-dialog' - 2 commits - framework/source include/sfx2 sc/source sc/uiconfig sfx2/sdi sfx2/source sw/inc sw/sdi sw/source
Szymon Kłos
eszkadev at gmail.com
Wed Jul 8 14:24:46 PDT 2015
framework/source/uielement/saveasmenucontroller.cxx | 7 ++--
include/sfx2/sfxsids.hrc | 1
sc/source/ui/app/scdll.cxx | 1
sc/uiconfig/scalc/toolbar/standardbar.xml | 2 -
sfx2/sdi/docslots.sdi | 5 +++
sfx2/sdi/sfx.sdi | 27 ++++++++++++++++
sfx2/source/doc/guisaveas.cxx | 33 +++++++++++++-------
sfx2/source/doc/objserv.cxx | 2 -
sw/inc/cmdid.h | 1
sw/sdi/docsh.sdi | 5 ---
sw/sdi/swriter.sdi | 27 ----------------
sw/source/uibase/app/swmodule.cxx | 2 -
12 files changed, 64 insertions(+), 49 deletions(-)
New commits:
commit e2169af9c75739464594d38de12170c47bff8c9d
Author: Szymon Kłos <eszkadev at gmail.com>
Date: Wed Jul 8 23:17:53 2015 +0200
Working toolbar entry: Save As > Remote file
Change-Id: I5601c7847f30a7d5fb7ede5f90b2a6a89f4c8693
diff --git a/framework/source/uielement/saveasmenucontroller.cxx b/framework/source/uielement/saveasmenucontroller.cxx
index 7e4fd92..6460013 100644
--- a/framework/source/uielement/saveasmenucontroller.cxx
+++ b/framework/source/uielement/saveasmenucontroller.cxx
@@ -41,7 +41,7 @@ using namespace framework;
namespace {
-static const char CMD_SAVE_REMOTE[] = ".uno:OpenRemote"; // TODO
+static const char CMD_SAVE_REMOTE[] = ".uno:SaveAsRemote";
class SaveAsMenuController : public svt::PopupMenuControllerBase
{
@@ -115,9 +115,9 @@ void SaveAsMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& rPo
if ( pVCLPopupMenu )
{
// Open remote menu entry
- pVCLPopupMenu->InsertItem( sal_uInt16( 0 ),
+ pVCLPopupMenu->InsertItem( sal_uInt16( 1 ),
FWK_RESSTR( STR_REMOTE_FILE ) );
- pVCLPopupMenu->SetItemCommand( sal_uInt16( 0 ),
+ pVCLPopupMenu->SetItemCommand( sal_uInt16( 1 ),
OUString( CMD_SAVE_REMOTE ) );
}
}
@@ -160,6 +160,7 @@ void SAL_CALL SaveAsMenuController::itemSelected( const css::awt::MenuEvent& rEv
if ( aCommand == CMD_SAVE_REMOTE )
{
Sequence< PropertyValue > aArgsList( 0 );
+
dispatchCommand( CMD_SAVE_REMOTE, aArgsList );
}
}
diff --git a/include/sfx2/sfxsids.hrc b/include/sfx2/sfxsids.hrc
index 0f4344e..1755eb5 100644
--- a/include/sfx2/sfxsids.hrc
+++ b/include/sfx2/sfxsids.hrc
@@ -102,6 +102,7 @@
#define SID_JUMPTOMARK (SID_SFX_START + 598)
#define SID_OPENTEMPLATE (SID_SFX_START + 594)
#define SID_SAVEASDOC (SID_SFX_START + 502)
+#define SID_SAVEASREMOTE (SID_SFX_START + 516)
#define SID_SAVEACOPY (SID_SFX_START + 999)
#define SID_SAVEACOPYITEM (SID_SFX_START + 998)
#define SID_CLOSING (SID_SFX_START +1539)
diff --git a/sfx2/sdi/docslots.sdi b/sfx2/sdi/docslots.sdi
index be17f43..9398f72 100644
--- a/sfx2/sdi/docslots.sdi
+++ b/sfx2/sdi/docslots.sdi
@@ -148,6 +148,11 @@ interface OfficeDocument : Document
ExecMethod = ExecFile_Impl ;
StateMethod = GetState_Impl ;
]
+ SID_SAVEASREMOTE // ole(req) api(final/play/rec)
+ [
+ ExecMethod = ExecFile_Impl ;
+ StateMethod = GetState_Impl ;
+ ]
SID_DOCTEMPLATE // ole(no) api(final/play/rec)
[
ExecMethod = ExecFile_Impl ;
diff --git a/sfx2/sdi/sfx.sdi b/sfx2/sdi/sfx.sdi
index eb6cccc..63c73c3 100644
--- a/sfx2/sdi/sfx.sdi
+++ b/sfx2/sdi/sfx.sdi
@@ -5013,6 +5013,33 @@ SfxBoolItem SaveAs SID_SAVEASDOC
GroupId = GID_DOCUMENT;
]
+SfxBoolItem SaveAsRemote SID_SAVEASREMOTE
+(SfxStringItem URL SID_FILE_NAME,SfxStringItem FilterName SID_FILTER_NAME,SfxStringItem Password SID_PASSWORD,SfxBoolItem PasswordInteraction SID_PASSWORDINTERACTION,SfxStringItem FilterOptions SID_FILE_FILTEROPTIONS,SfxStringItem VersionComment SID_DOCINFO_COMMENTS,SfxStringItem VersionAuthor SID_DOCINFO_AUTHOR,SfxBoolItem Overwrite SID_OVERWRITE,SfxBoolItem Unpacked SID_UNPACK,SfxBoolItem SaveTo SID_SAVETO)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = TRUE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+ Synchron;
+
+ /* status: */
+ SlotType = SfxStringItem
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DOCUMENT;
+]
+
SfxBoolItem SaveAsTemplate SID_DOCTEMPLATE
(SfxStringItem TemplateRegion SID_TEMPLATE_REGIONNAME,SfxStringItem TemplateName SID_TEMPLATE_NAME)
diff --git a/sfx2/source/doc/guisaveas.cxx b/sfx2/source/doc/guisaveas.cxx
index a3aef2d..a9b8296 100644
--- a/sfx2/source/doc/guisaveas.cxx
+++ b/sfx2/source/doc/guisaveas.cxx
@@ -105,6 +105,7 @@
#define SAVE_REQUESTED 16
#define SAVEAS_REQUESTED 32
#define SAVEACOPY_REQUESTED 64
+#define SAVEASREMOTE_REQUESTED -1
// possible statuses of save operation
#define STATUS_NO_ACTION 0
@@ -136,6 +137,8 @@ static sal_uInt16 getSlotIDFromMode( sal_Int8 nStoreMode )
nResult = SID_DIRECTEXPORTDOCASPDF;
else if ( nStoreMode == SAVEAS_REQUESTED || nStoreMode == ( EXPORT_REQUESTED | WIDEEXPORT_REQUESTED ) )
nResult = SID_SAVEASDOC;
+ else if ( nStoreMode == SAVEASREMOTE_REQUESTED )
+ nResult = SID_SAVEASREMOTE;
else {
DBG_ASSERT( false, "Unacceptable slot name is provided!\n" );
}
@@ -157,6 +160,8 @@ static sal_uInt8 getStoreModeFromSlotName( const OUString& aSlotName )
nResult = SAVE_REQUESTED;
else if ( aSlotName == "SaveAs" )
nResult = SAVEAS_REQUESTED;
+ else if ( aSlotName == "SaveAsRemote" )
+ nResult = SAVEASREMOTE_REQUESTED;
else
throw task::ErrorCodeIOException(
("getStoreModeFromSlotName(\"" + aSlotName
@@ -547,7 +552,7 @@ uno::Sequence< beans::PropertyValue > ModelData_Impl::GetPreselectedFilter_Impl(
SfxFilterFlags nMust = getMustFlags( nStoreMode );
SfxFilterFlags nDont = getDontFlags( nStoreMode );
- if ( nStoreMode & PDFEXPORT_REQUESTED )
+ if ( ( nStoreMode != SAVEASREMOTE_REQUESTED ) && ( nStoreMode & PDFEXPORT_REQUESTED ) )
{
// Preselect PDF-Filter for EXPORT
uno::Sequence< beans::NamedValue > aSearchRequest( 2 );
@@ -1548,17 +1553,25 @@ bool SfxStoringHelper::GUIStoreModel( uno::Reference< frame::XModel > xModel,
if ( aFileNameIter == aModelData.GetMediaDescr().end() )
{
sal_Int16 nDialog = SFX2_IMPL_DIALOG_CONFIG;
- ::comphelper::SequenceAsHashMap::const_iterator aDlgIter =
- aModelData.GetMediaDescr().find( OUString("UseSystemDialog") );
- if ( aDlgIter != aModelData.GetMediaDescr().end() )
+
+ if( nStoreMode == SAVEASREMOTE_REQUESTED )
{
- bool bUseSystemDialog = true;
- if ( aDlgIter->second >>= bUseSystemDialog )
+ nDialog = SFX2_IMPL_DIALOG_REMOTE;
+ }
+ else
+ {
+ ::comphelper::SequenceAsHashMap::const_iterator aDlgIter =
+ aModelData.GetMediaDescr().find( OUString("UseSystemDialog") );
+ if ( aDlgIter != aModelData.GetMediaDescr().end() )
{
- if ( bUseSystemDialog )
- nDialog = SFX2_IMPL_DIALOG_SYSTEM;
- else
- nDialog = SFX2_IMPL_DIALOG_OOO;
+ bool bUseSystemDialog = true;
+ if ( aDlgIter->second >>= bUseSystemDialog )
+ {
+ if ( bUseSystemDialog )
+ nDialog = SFX2_IMPL_DIALOG_SYSTEM;
+ else
+ nDialog = SFX2_IMPL_DIALOG_OOO;
+ }
}
}
diff --git a/sfx2/source/doc/objserv.cxx b/sfx2/source/doc/objserv.cxx
index f4ba28b..4c442b1 100644
--- a/sfx2/source/doc/objserv.cxx
+++ b/sfx2/source/doc/objserv.cxx
@@ -528,13 +528,13 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq)
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
case SID_EXPORTDOCASPDF:
case SID_DIRECTEXPORTDOCASPDF:
bIsPDFExport = true;
//fall-through
case SID_EXPORTDOC:
case SID_SAVEASDOC:
+ case SID_SAVEASREMOTE:
case SID_SAVEDOC:
{
// derived class may decide to abort this
diff --git a/sw/inc/cmdid.h b/sw/inc/cmdid.h
index 913f81a..dda4a38 100644
--- a/sw/inc/cmdid.h
+++ b/sw/inc/cmdid.h
@@ -62,7 +62,6 @@
// Region: File
#define FN_NEW_GLOBAL_DOC (FN_FILE + 4 ) /* Create Global Document */
-#define FN_SAVE_FILE_AS (FN_FILE + 5 ) /* Save As */
#define FN_OPEN_FILE (FN_FILE + 7 ) /* Open */
#define FN_OUTLINE_TO_IMPRESS (FN_FILE + 36) /* Send outline to impress */
diff --git a/sw/sdi/docsh.sdi b/sw/sdi/docsh.sdi
index 5e9fe78..9085bdf 100644
--- a/sw/sdi/docsh.sdi
+++ b/sw/sdi/docsh.sdi
@@ -59,11 +59,6 @@ interface TextDocument : BaseTextDocument
ExecMethod = Execute;
StateMethod = GetState;
]
- FN_SAVE_FILE_AS
- [
- ExecMethod = Execute;
- StateMethod = GetState;
- ]
}
shell SwDocShell
diff --git a/sw/sdi/swriter.sdi b/sw/sdi/swriter.sdi
index 364ece7..deea1c0 100644
--- a/sw/sdi/swriter.sdi
+++ b/sw/sdi/swriter.sdi
@@ -10026,33 +10026,6 @@ SfxVoidItem OpenFromWriter FN_OPEN_FILE
GroupId = GID_APPLICATION;
]
-SfxVoidItem SaveAs FN_SAVE_FILE_AS
-()
-[
- /* flags: */
- AutoUpdate = FALSE,
- Cachable = Cachable,
- FastCall = FALSE,
- HasCoreId = FALSE,
- HasDialog = FALSE,
- ReadOnlyDoc = TRUE,
- Toggle = FALSE,
- Container = FALSE,
- RecordAbsolute = FALSE,
- RecordPerSet;
- Synchron;
-
- /* status: */
- SlotType = SfxStringItem
-
- /* config: */
- AccelConfig = TRUE,
- MenuConfig = TRUE,
- StatusBarConfig = FALSE,
- ToolBoxConfig = TRUE,
- GroupId = GID_APPLICATION;
-]
-
SfxInt16Item PageColumnType SID_ATTR_PAGE_COLUMN
[
diff --git a/sw/source/uibase/app/swmodule.cxx b/sw/source/uibase/app/swmodule.cxx
index 2bd0ebc..4c0b27b 100644
--- a/sw/source/uibase/app/swmodule.cxx
+++ b/sw/source/uibase/app/swmodule.cxx
@@ -307,7 +307,7 @@ void SwDLL::RegisterControls()
SvxColorToolBoxControl::RegisterControl( SID_EXTRUSION_3D_COLOR, pMod );
svx::FontWorkShapeTypeControl::RegisterControl( SID_FONTWORK_SHAPE_TYPE, pMod );
- SfxSaveAsToolBoxControl::RegisterControl(FN_SAVE_FILE_AS, pMod );
+ SfxSaveAsToolBoxControl::RegisterControl(SID_SAVEASDOC, pMod );
SvxClipBoardControl::RegisterControl(SID_PASTE, pMod );
SvxUndoRedoControl::RegisterControl(SID_UNDO, pMod );
SvxUndoRedoControl::RegisterControl(SID_REDO, pMod );
commit c1976fc6ef8a82e3b86ca83636cce996ab62ff53
Author: Szymon Kłos <eszkadev at gmail.com>
Date: Tue Jul 7 17:41:09 2015 +0200
'Save As' popup menu in the Calc's toolbar
Change-Id: I5e7d5594062bb722b1076450c1e6e633183279b3
diff --git a/sc/source/ui/app/scdll.cxx b/sc/source/ui/app/scdll.cxx
index 384ae4c..a6dfd57 100644
--- a/sc/source/ui/app/scdll.cxx
+++ b/sc/source/ui/app/scdll.cxx
@@ -153,6 +153,7 @@ void ScDLL::Init()
ScPageBreakShell ::RegisterInterface(pMod);
SfxRecentFilesToolBoxControl::RegisterControl(SID_OPEN_CALC, pMod);
+ SfxSaveAsToolBoxControl::RegisterControl(SID_SAVEASDOC, pMod );
// Own Controller
ScTbxInsertCtrl ::RegisterControl(SID_TBXCTL_INSERT, pMod);
diff --git a/sc/uiconfig/scalc/toolbar/standardbar.xml b/sc/uiconfig/scalc/toolbar/standardbar.xml
index 1402b8b..8dfa3c5 100644
--- a/sc/uiconfig/scalc/toolbar/standardbar.xml
+++ b/sc/uiconfig/scalc/toolbar/standardbar.xml
@@ -24,7 +24,7 @@
<toolbar:toolbaritem xlink:href=".uno:OpenFromCalc" toolbar:style="dropdown"/>
<toolbar:toolbaritem xlink:href=".uno:OpenRemote"/>
<toolbar:toolbaritem xlink:href=".uno:Save"/>
- <toolbar:toolbaritem xlink:href=".uno:SaveAs"/>
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:style="dropdown"/>
<toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:visible="false"/>
<toolbar:toolbarseparator/>
<toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:visible="false"/>
More information about the Libreoffice-commits
mailing list