[Libreoffice-commits] core.git: Branch 'feature/gsoc15-open-remote-files-dialog' - svtools/source
Szymon Kłos
eszkadev at gmail.com
Thu May 21 08:55:50 PDT 2015
svtools/source/dialogs/RemoteFilesDialog.cxx | 30 ++++++++++++++-------------
1 file changed, 16 insertions(+), 14 deletions(-)
New commits:
commit 060bafcdf8698f15e7246b41dd91371440115fe0
Author: Szymon Kłos <eszkadev at gmail.com>
Date: Thu May 21 17:53:55 2015 +0200
filter places and add only remote services
Change-Id: If4ced3f6766f07dfb454a5c8056a98d8365dcf70
diff --git a/svtools/source/dialogs/RemoteFilesDialog.cxx b/svtools/source/dialogs/RemoteFilesDialog.cxx
index e91cf19..28b153d 100644
--- a/svtools/source/dialogs/RemoteFilesDialog.cxx
+++ b/svtools/source/dialogs/RemoteFilesDialog.cxx
@@ -11,6 +11,8 @@
using namespace ::com::sun::star::uno;
+const OUString sLocalFilePrefix = "file://";
+
RemoteFilesDialog::RemoteFilesDialog(vcl::Window* pParent, WinBits nBits)
: ModalDialog(pParent, "RemoteFilesDialog", "svt/ui/remotefilesdialog.ui")
, m_context(comphelper::getProcessComponentContext())
@@ -47,15 +49,18 @@ void RemoteFilesDialog::fillServicesListbox()
Sequence< OUString > placesUrlsList(officecfg::Office::Common::Misc::FilePickerPlacesUrls::get(m_context));
Sequence< OUString > placesNamesList(officecfg::Office::Common::Misc::FilePickerPlacesNames::get(m_context));
- // TODO: filter - only online services
if(placesUrlsList.getLength() > 0 && placesNamesList.getLength() > 0)
{
for(sal_Int32 nPlace = 0; nPlace < placesUrlsList.getLength() && nPlace < placesNamesList.getLength(); ++nPlace)
{
- ServicePtr pService(new Place(placesNamesList[nPlace], placesUrlsList[nPlace], true));
- m_aServices.push_back(pService);
+ // Add only remote services, not local bookmarks
+ if(placesUrlsList[nPlace].compareTo(sLocalFilePrefix, sLocalFilePrefix.getLength()) != 0)
+ {
+ ServicePtr pService(new Place(placesNamesList[nPlace], placesUrlsList[nPlace], true));
+ m_aServices.push_back(pService);
- m_pServices_lb->InsertEntry(placesNamesList[nPlace]);
+ m_pServices_lb->InsertEntry(placesNamesList[nPlace]);
+ }
}
m_pServices_lb->SelectEntryPos(0);
@@ -80,18 +85,15 @@ IMPL_LINK_NOARG ( RemoteFilesDialog, AddServiceHdl )
m_pServices_lb->InsertEntry(newService->GetName());
m_pServices_lb->SelectEntryPos(m_pServices_lb->GetEntryCount() - 1);
- // save services
+ // load all places (with local bookmarks), add new service and save all
- Sequence< OUString > placesUrlsList(m_aServices.size());
- Sequence< OUString > placesNamesList(m_aServices.size());
+ Sequence< OUString > placesUrlsList(officecfg::Office::Common::Misc::FilePickerPlacesUrls::get(m_context));
+ placesUrlsList.realloc(placesUrlsList.getLength() + 1);
+ Sequence< OUString > placesNamesList(officecfg::Office::Common::Misc::FilePickerPlacesNames::get(m_context));
+ placesNamesList.realloc(placesNamesList.getLength() + 1);
- int i = 0;
- for(std::vector<ServicePtr>::const_iterator it = m_aServices.begin(); it != m_aServices.end(); ++it)
- {
- placesUrlsList[i] = (*it)->GetUrl();
- placesNamesList[i] = (*it)->GetName();
- i++;
- }
+ placesUrlsList[placesUrlsList.getLength() - 1] = newService->GetUrl();
+ placesNamesList[placesNamesList.getLength() - 1] = newService->GetName();
std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create(m_context));
officecfg::Office::Common::Misc::FilePickerPlacesUrls::set(placesUrlsList, batch);
More information about the Libreoffice-commits
mailing list