[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