[Libreoffice-commits] core.git: Branch 'feature/gsoc15-open-remote-files-dialog' - 4 commits - include/svtools sfx2/sdi sfx2/source svtools/source
Szymon Kłos
eszkadev at gmail.com
Wed Jun 24 09:17:11 PDT 2015
include/svtools/RemoteFilesDialog.hxx | 6 ++++
sfx2/sdi/sfx.sdi | 2 -
sfx2/source/appl/appopen.cxx | 11 ++++++++-
svtools/source/dialogs/RemoteFilesDialog.cxx | 33 ++++++++++++++++++++++++---
4 files changed, 47 insertions(+), 5 deletions(-)
New commits:
commit b400a14d8db8978b5423a3f5991ae8dd0e62714f
Author: Szymon Kłos <eszkadev at gmail.com>
Date: Wed Jun 24 18:15:26 2015 +0200
OK button handler & opening the files (very basic)
Change-Id: I14ea89b118fdd5d97cb162523b55ca61cee0c97a
diff --git a/include/svtools/RemoteFilesDialog.hxx b/include/svtools/RemoteFilesDialog.hxx
index 67f1609..033e8c0 100644
--- a/include/svtools/RemoteFilesDialog.hxx
+++ b/include/svtools/RemoteFilesDialog.hxx
@@ -135,6 +135,8 @@ private:
DECL_LINK( TreeExpandHdl, SvTreeListBox * );
DECL_LINK( SelectBreadcrumbHdl, Breadcrumb * );
+
+ DECL_LINK( OkHdl, void * );
};
#endif // INCLUDED_SVTOOLS_REMOTEFILESDIALOG_HXX
diff --git a/sfx2/sdi/sfx.sdi b/sfx2/sdi/sfx.sdi
index eee99af..eb6cccc 100644
--- a/sfx2/sdi/sfx.sdi
+++ b/sfx2/sdi/sfx.sdi
@@ -3801,7 +3801,7 @@ SfxObjectItem Open SID_OPENDOC
]
SfxObjectItem OpenRemote SID_OPENREMOTE
-()
+(SfxStringItem URL SID_FILE_NAME,SfxStringItem FilterName SID_FILTER_NAME,SfxStringItem OpenFlags SID_OPTIONS,SfxStringItem Password SID_PASSWORD,SfxStringItem FilterOptions SID_FILE_FILTEROPTIONS,SfxInt16Item Version SID_VERSION,SfxStringItem Referer SID_REFERER,SfxStringItem SuggestedSaveAsDir SID_DEFAULTFILEPATH,SfxStringItem SuggestedSaveAsName SID_DEFAULTFILENAME)
[
/* flags: */
AutoUpdate = FALSE,
diff --git a/sfx2/source/appl/appopen.cxx b/sfx2/source/appl/appopen.cxx
index f1a4677..9ae4b91 100644
--- a/sfx2/source/appl/appopen.cxx
+++ b/sfx2/source/appl/appopen.cxx
@@ -1121,7 +1121,7 @@ void SfxApplication::OpenDocExec_Impl( SfxRequest& rReq )
}
}
-void SfxApplication::OpenRemoteExec_Impl( SfxRequest& )
+void SfxApplication::OpenRemoteExec_Impl( SfxRequest& rReq )
{
ScopedVclPtrInstance< RemoteFilesDialog > aDlg((vcl::Window*)NULL, WB_OPEN);
@@ -1131,6 +1131,15 @@ void SfxApplication::OpenRemoteExec_Impl( SfxRequest& )
aDlg->AddFilter("ODS files", "*.ods");
aDlg->Execute();
+
+ OUString sFileName = aDlg->GetPath();
+
+ rReq.AppendItem( SfxStringItem( SID_TARGETNAME, OUString("_default") ) );
+ rReq.AppendItem( SfxStringItem( SID_REFERER, "private:user" ) );
+ rReq.RemoveItem( SID_FILE_NAME );
+ rReq.AppendItem( SfxStringItem( SID_FILE_NAME, sFileName ) );
+
+ GetDispatcher_Impl()->Execute( SID_OPENDOC, SfxCallMode::SYNCHRON, *rReq.GetArgs() );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svtools/source/dialogs/RemoteFilesDialog.cxx b/svtools/source/dialogs/RemoteFilesDialog.cxx
index 253417f..b7734e0 100644
--- a/svtools/source/dialogs/RemoteFilesDialog.cxx
+++ b/svtools/source/dialogs/RemoteFilesDialog.cxx
@@ -163,6 +163,8 @@ RemoteFilesDialog::RemoteFilesDialog(vcl::Window* pParent, WinBits nBits)
m_pOpen_btn->Hide();
}
+ m_pOpen_btn->SetClickHdl( LINK( this, RemoteFilesDialog, OkHdl ) );
+
m_pPath = VclPtr<Breadcrumb>::Create( get<vcl::Window>("breadcrumb_container") );
m_pPath->set_hexpand(true);
m_pPath->SetClickHdl( LINK( this, RemoteFilesDialog, SelectBreadcrumbHdl ) );
@@ -650,9 +652,12 @@ IMPL_LINK_NOARG ( RemoteFilesDialog, SelectHdl )
m_sPath = pData->maURL;
m_pName_ed->SetText( INetURLObject::decode( aURL.GetLastName(), INetURLObject::DECODE_WITH_CHARSET ) );
+
+ m_pOpen_btn->Enable( true );
}
else
{
+ m_pOpen_btn->Enable( false );
m_sPath = "";
m_pName_ed->SetText( "" );
}
@@ -721,4 +726,10 @@ IMPL_LINK ( RemoteFilesDialog, SelectBreadcrumbHdl, Breadcrumb*, pPtr )
return 1;
}
+IMPL_LINK_NOARG ( RemoteFilesDialog, OkHdl )
+{
+ EndDialog( RET_OK );
+ return 1;
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 96222dabc0b5ff430f4d8e76949f43bf39fff0c1
Author: Szymon Kłos <eszkadev at gmail.com>
Date: Wed Jun 24 16:23:54 2015 +0200
RemoteFilesDialog: the path getter
Change-Id: I63a72f3629ab0bf8fb616b44deaa8b37545bd964
diff --git a/include/svtools/RemoteFilesDialog.hxx b/include/svtools/RemoteFilesDialog.hxx
index c437e1e..67f1609 100644
--- a/include/svtools/RemoteFilesDialog.hxx
+++ b/include/svtools/RemoteFilesDialog.hxx
@@ -76,6 +76,8 @@ public:
void AddFilter( OUString sName, OUString sType );
+ OUString GetPath() const;
+
private:
::com::sun::star::uno::Reference < com::sun::star::uno::XComponentContext > m_context;
@@ -85,6 +87,8 @@ private:
bool m_bIsUpdated;
Image m_aFolderImage;
+ OUString m_sPath;
+
Reference< XCommandEnvironment > m_xEnv;
::osl::Mutex m_aMutex;
diff --git a/svtools/source/dialogs/RemoteFilesDialog.cxx b/svtools/source/dialogs/RemoteFilesDialog.cxx
index d95cba5..253417f 100644
--- a/svtools/source/dialogs/RemoteFilesDialog.cxx
+++ b/svtools/source/dialogs/RemoteFilesDialog.cxx
@@ -374,6 +374,11 @@ void RemoteFilesDialog::AddFilter( OUString sName, OUString sType )
m_pFilter_lb->SelectEntryPos( 0 );
}
+OUString RemoteFilesDialog::GetPath() const
+{
+ return m_sPath;
+}
+
OUString RemoteFilesDialog::getCurrentFilter()
{
OUString sFilter;
@@ -642,10 +647,13 @@ IMPL_LINK_NOARG ( RemoteFilesDialog, SelectHdl )
|| ( !pData->mbIsFolder && ( m_eType == REMOTEDLG_TYPE_FILEDLG ) ) )
{
INetURLObject aURL( pData->maURL );
+ m_sPath = pData->maURL;
+
m_pName_ed->SetText( INetURLObject::decode( aURL.GetLastName(), INetURLObject::DECODE_WITH_CHARSET ) );
}
else
{
+ m_sPath = "";
m_pName_ed->SetText( "" );
}
commit f6baab8b52753e144e37ba28f1f1ce1477d666db
Author: Szymon Kłos <eszkadev at gmail.com>
Date: Wed Jun 24 16:07:08 2015 +0200
RemoteFilesDialog: showing of the filename depends on the dialog's type
Change-Id: I753beb28d07a5cc74634d5fa2cd9a78c8711628f
diff --git a/svtools/source/dialogs/RemoteFilesDialog.cxx b/svtools/source/dialogs/RemoteFilesDialog.cxx
index 8b0b1bc..d95cba5 100644
--- a/svtools/source/dialogs/RemoteFilesDialog.cxx
+++ b/svtools/source/dialogs/RemoteFilesDialog.cxx
@@ -638,8 +638,16 @@ IMPL_LINK_NOARG ( RemoteFilesDialog, SelectHdl )
SvTreeListEntry* pEntry = m_pFileView->FirstSelected();
SvtContentEntry* pData = static_cast< SvtContentEntry* >( pEntry->GetUserData() );
- INetURLObject aURL( pData->maURL );
- m_pName_ed->SetText( INetURLObject::decode( aURL.GetLastName(), INetURLObject::DECODE_WITH_CHARSET ) );
+ if( ( pData->mbIsFolder && ( m_eType == REMOTEDLG_TYPE_PATHDLG ) )
+ || ( !pData->mbIsFolder && ( m_eType == REMOTEDLG_TYPE_FILEDLG ) ) )
+ {
+ INetURLObject aURL( pData->maURL );
+ m_pName_ed->SetText( INetURLObject::decode( aURL.GetLastName(), INetURLObject::DECODE_WITH_CHARSET ) );
+ }
+ else
+ {
+ m_pName_ed->SetText( "" );
+ }
return 1;
}
commit eb66c46c292cacf3db65ad460848b376f8170525
Author: Szymon Kłos <eszkadev at gmail.com>
Date: Wed Jun 24 15:48:58 2015 +0200
RemoteFilesDialog: decode file name
Change-Id: I0ab4e7778f7b7f085b02cef3c4504882aa414b15
diff --git a/svtools/source/dialogs/RemoteFilesDialog.cxx b/svtools/source/dialogs/RemoteFilesDialog.cxx
index 0d4541b..8b0b1bc 100644
--- a/svtools/source/dialogs/RemoteFilesDialog.cxx
+++ b/svtools/source/dialogs/RemoteFilesDialog.cxx
@@ -636,10 +636,10 @@ IMPL_LINK_NOARG ( RemoteFilesDialog, DoubleClickHdl )
IMPL_LINK_NOARG ( RemoteFilesDialog, SelectHdl )
{
SvTreeListEntry* pEntry = m_pFileView->FirstSelected();
- SvtContentEntry* pData = static_cast<SvtContentEntry*>(pEntry->GetUserData());
+ SvtContentEntry* pData = static_cast< SvtContentEntry* >( pEntry->GetUserData() );
- INetURLObject aURL(pData->maURL);
- m_pName_ed->SetText(aURL.GetLastName());
+ INetURLObject aURL( pData->maURL );
+ m_pName_ed->SetText( INetURLObject::decode( aURL.GetLastName(), INetURLObject::DECODE_WITH_CHARSET ) );
return 1;
}
More information about the Libreoffice-commits
mailing list