Re: University practical exercise about LibreOffice

2018-01-15 Thread Jacobo Aragunde Pérez
Hi Adrián,

the code base of LibreOffice predates most bibliography about software
patterns, so you aren't going to find documents like those here!

Still, I made a presentation some time ago that you may find useful,
specially the parts that describe the branch model, how releases work, etc.

https://blogs.igalia.com/jaragunde/2015/11/11/updated-libreoffice-workshop-at-a-coruna-university/

The Android code is, indeed, modern, but it follows the good old
development methodology of "hack something together until it works, then
polish" :) You can still find some patterns, a good developer will find
ways to reuse code or structures, but sometimes it's not even a
conscious decision, and you won't find documentation about that
excepting blog posts from the authors, if they feel like writing about
that. Maybe check the blogs linked from:
https://planet.documentfoundation.org/

If you dig a bit more in my blog you will find some posts about the
Android code that might (or might not!) be interesting. Like I said
before, they explain the parts I wrote. But please, don't ask about them
because I've totally forgot at this point! :D

Hope this helps. Good luck!

Best,
-- 
Jacobo Aragunde
Software Engineer at Igalia



On 15/01/18 10:40, Adrian Lopez wrote:
> 
> Hi,
> 
> No, I am not the guy who asked in the IRC channel, I have continued
> revising the code of the android module of the application core, but I
> am having some difficulties about recognizing design patterns clearly. I
> have seen something similar to the Observer pattern in classes related
> to control scrolling, or something similar to Composite pattern in the
> way the layers are being composed. However I did not find a whole
> pattern to write about it apart from Factory or Singleton. Could someone
> help me about that in a more specific way?
> 
> Than you very mutch in advance.
> 
> Bye,
> 
> Adrián López Martínez 
> 
> El 14/1/2018 4:06 p. m., "Tor Lillqvist"  > escribió:
> 
> Are you the guy who has asked about this in the developer IRC
> channel? I think you were given this pointer already, but I repeat
> it here for posterity: http://laputan.org/mud/ 
> 
> --tml
> 
> 
> 
> ___
> LibreOffice mailing list
> LibreOffice@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/libreoffice
> 
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice


[Libreoffice-commits] core.git: Branch 'libreoffice-5-4' - oox/source sd/qa

2017-10-20 Thread Jacobo Aragunde Pérez
 oox/source/export/drawingml.cxx |   14 ++
 sd/qa/unit/data/pptx/tdf112633.pptx |binary
 sd/qa/unit/export-tests-ooxml1.cxx  |   30 ++
 3 files changed, 40 insertions(+), 4 deletions(-)

New commits:
commit 3e250d0a392c37e9e610bd83017a3045c4c02638
Author: Jacobo Aragunde Pérez 
Date:   Thu Oct 12 13:30:47 2017 +0200

tdf#112633 oox: Save backup images to proper path in document

Artistic effects on bitmap images in OOXML files create a backup file
with the original image. These were not being saved into the proper
path for PPTX files because the `/word` directory was hardcoded in the
export code.

The path saved to the relations file was incorrect too because it was
not taking into account that the relations file is saved to a subdir
in PPTX and XLSX documents.

Finally, added a unit test.

Reviewed-on: https://gerrit.libreoffice.org/43338
Tested-by: Jenkins 
Reviewed-by: Tamás Zolnai 
(cherry picked from commit 55641f5572f3168c09e096eb89ca563652889758)

Change-Id: I3e880ce763dc10dbc86ccf0e00871be5d36f6d88
Reviewed-on: https://gerrit.libreoffice.org/43600
Reviewed-by: Michael Stahl 
Tested-by: Michael Stahl 

diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 4b327f63d76f..48720d923144 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -3448,16 +3448,22 @@ OString DrawingML::WriteWdpPicture( const OUString& 
rFileId, const Sequence< sal
 return OUStringToOString( aCachedItem->second, RTL_TEXTENCODING_UTF8 );
 
 OUString sFileName = "media/hdphoto" + OUString::number( 
mnWdpImageCounter++ ) + ".wdp";
-uno::Reference< io::XOutputStream > xOutStream =
-mpFB->openFragmentStream( "word/" + sFileName,
-  "image/vnd.ms-photo" );
+Reference< XOutputStream > xOutStream = mpFB->openFragmentStream( 
OUStringBuffer()
+  
.appendAscii( GetComponentDir() )
+  .append( 
"/" )
+  .append( 
sFileName )
+  
.makeStringAndClear(),
+  
"image/vnd.ms-photo" );
 OUString sId;
 xOutStream->writeBytes( rPictureData );
 xOutStream->closeOutput();
 
 sId = mpFB->addRelation( mpFS->getOutputStream(),
  oox::getRelationship(Relationship::HDPHOTO),
- sFileName );
+ OUStringBuffer()
+ .appendAscii( GetRelationCompPrefix() )
+ .append( sFileName )
+ .makeStringAndClear() );
 
 maWdpCache[rFileId] = sId;
 return OUStringToOString( sId, RTL_TEXTENCODING_UTF8 );
diff --git a/sd/qa/unit/data/pptx/tdf112633.pptx 
b/sd/qa/unit/data/pptx/tdf112633.pptx
new file mode 100644
index ..b9e062967132
Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf112633.pptx differ
diff --git a/sd/qa/unit/export-tests-ooxml1.cxx 
b/sd/qa/unit/export-tests-ooxml1.cxx
index ab59ffe226b1..11f8598cedff 100644
--- a/sd/qa/unit/export-tests-ooxml1.cxx
+++ b/sd/qa/unit/export-tests-ooxml1.cxx
@@ -104,6 +104,7 @@ public:
 void testBulletCharAndFont();
 void testBulletMarginAndIndentation();
 void testParaMarginAndindentation();
+void testTdf112633();
 
 CPPUNIT_TEST_SUITE(SdOOXMLExportTest1);
 
@@ -131,6 +132,7 @@ public:
 CPPUNIT_TEST(testBulletCharAndFont);
 CPPUNIT_TEST(testBulletMarginAndIndentation);
 CPPUNIT_TEST(testParaMarginAndindentation);
+CPPUNIT_TEST(testTdf112633);
 
 CPPUNIT_TEST_SUITE_END();
 
@@ -779,6 +781,34 @@ void SdOOXMLExportTest1::testTableCellBorder()
 xDocShRef->DoClose();
 }
 
+void SdOOXMLExportTest1::testTdf112633()
+{
+// Load document and export it to a temporary file
+::sd::DrawDocShellRef xDocShRef = 
loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf112633.pptx"), 
PPTX);
+utl::TempFile tempFile;
+xDocShRef = saveAndReload(xDocShRef.get(), PPTX, );
+xDocShRef->DoClose();
+
+xmlDocPtr pXmlDoc = parseExport(tempFile, "ppt/slides/slide1.xml");
+xmlDocPtr pRelsDoc = parseExport(tempFile, 
"ppt/slides/_rels/slide1.xml.rels");
+
+// Check image with artistic effect exists in the slide
+assertXPath(pXmlDoc, 
"/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:blip/a:extLst/a:ext/a14:imgProps/"
+"a14:imgLayer/a14:imgEffect/a14:artisticPencilGrayscale",
+"pencilSize", "80");
+
+// Check there is a relation with the .wdp file 

[Libreoffice-commits] core.git: oox/source sd/qa

2017-10-16 Thread Jacobo Aragunde Pérez
 oox/source/export/drawingml.cxx |   14 ++
 sd/qa/unit/data/pptx/tdf112633.pptx |binary
 sd/qa/unit/export-tests-ooxml1.cxx  |   30 ++
 3 files changed, 40 insertions(+), 4 deletions(-)

New commits:
commit 55641f5572f3168c09e096eb89ca563652889758
Author: Jacobo Aragunde Pérez 
Date:   Thu Oct 12 13:30:47 2017 +0200

tdf#112633 oox: Save backup images to proper path in document

Artistic effects on bitmap images in OOXML files create a backup file
with the original image. These were not being saved into the proper
path for PPTX files because the `/word` directory was hardcoded in the
export code.

The path saved to the relations file was incorrect too because it was
not taking into account that the relations file is saved to a subdir
in PPTX and XLSX documents.

Finally, added a unit test.

Change-Id: I3e880ce763dc10dbc86ccf0e00871be5d36f6d88
Reviewed-on: https://gerrit.libreoffice.org/43338
Tested-by: Jenkins 
Reviewed-by: Tamás Zolnai 

diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 5beb7212ce0b..4c5c1755cdaa 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -3575,16 +3575,22 @@ OString DrawingML::WriteWdpPicture( const OUString& 
rFileId, const Sequence< sal
 return OUStringToOString( aCachedItem->second, RTL_TEXTENCODING_UTF8 );
 
 OUString sFileName = "media/hdphoto" + OUString::number( 
mnWdpImageCounter++ ) + ".wdp";
-uno::Reference< io::XOutputStream > xOutStream =
-mpFB->openFragmentStream( "word/" + sFileName,
-  "image/vnd.ms-photo" );
+Reference< XOutputStream > xOutStream = mpFB->openFragmentStream( 
OUStringBuffer()
+  
.appendAscii( GetComponentDir() )
+  .append( 
"/" )
+  .append( 
sFileName )
+  
.makeStringAndClear(),
+  
"image/vnd.ms-photo" );
 OUString sId;
 xOutStream->writeBytes( rPictureData );
 xOutStream->closeOutput();
 
 sId = mpFB->addRelation( mpFS->getOutputStream(),
  oox::getRelationship(Relationship::HDPHOTO),
- sFileName );
+ OUStringBuffer()
+ .appendAscii( GetRelationCompPrefix() )
+ .append( sFileName )
+ .makeStringAndClear() );
 
 maWdpCache[rFileId] = sId;
 return OUStringToOString( sId, RTL_TEXTENCODING_UTF8 );
diff --git a/sd/qa/unit/data/pptx/tdf112633.pptx 
b/sd/qa/unit/data/pptx/tdf112633.pptx
new file mode 100644
index ..b9e062967132
Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf112633.pptx differ
diff --git a/sd/qa/unit/export-tests-ooxml1.cxx 
b/sd/qa/unit/export-tests-ooxml1.cxx
index e2fb52e53a06..548352ae0fa6 100644
--- a/sd/qa/unit/export-tests-ooxml1.cxx
+++ b/sd/qa/unit/export-tests-ooxml1.cxx
@@ -100,6 +100,7 @@ public:
 void testBulletMarginAndIndentation();
 void testParaMarginAndindentation();
 void testTdf111884();
+void testTdf112633();
 
 CPPUNIT_TEST_SUITE(SdOOXMLExportTest1);
 
@@ -128,6 +129,7 @@ public:
 CPPUNIT_TEST(testBulletMarginAndIndentation);
 CPPUNIT_TEST(testParaMarginAndindentation);
 CPPUNIT_TEST(testTdf111884);
+CPPUNIT_TEST(testTdf112633);
 
 CPPUNIT_TEST_SUITE_END();
 
@@ -801,6 +803,34 @@ void SdOOXMLExportTest1::testTdf111884()
 xDocShRef->DoClose();
 }
 
+void SdOOXMLExportTest1::testTdf112633()
+{
+// Load document and export it to a temporary file
+::sd::DrawDocShellRef xDocShRef = 
loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf112633.pptx"), 
PPTX);
+utl::TempFile tempFile;
+xDocShRef = saveAndReload(xDocShRef.get(), PPTX, );
+xDocShRef->DoClose();
+
+xmlDocPtr pXmlDoc = parseExport(tempFile, "ppt/slides/slide1.xml");
+xmlDocPtr pRelsDoc = parseExport(tempFile, 
"ppt/slides/_rels/slide1.xml.rels");
+
+// Check image with artistic effect exists in the slide
+assertXPath(pXmlDoc, 
"/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:blip/a:extLst/a:ext/a14:imgProps/"
+"a14:imgLayer/a14:imgEffect/a14:artisticPencilGrayscale",
+"pencilSize", "80");
+
+// Check there is a relation with the .wdp file that contains the backed 
up image
+OUString sEmbedId1 = getXPath(pXmlDoc, 
"/p:sld/p:cSld/p:spTree/p:pic/p:blipFill/a:blip/a:extLst/"
+"a:ext/a14:imgProps/a14:imgLayer", "embed");
+OUString sXmlPath = 

Re: [libreoffice-design] Minutes of the Design Hangout: 2016-04-01

2016-04-11 Thread Jacobo Aragunde Pérez
On 11/04/16 17:00, Wols Lists wrote:
> On 11/04/16 10:24, Yousuf 'Jay' Philips wrote:
>> On 04/05/2016 05:38 PM, Wols Lists wrote:
>>> Just seen this - one little comment ...
>>>
>>> "Prefer graphical widgets in favor of controls that require the input of
>>> an exact value (e.g. an image’s transparency with discrete steps via
>>> sliders)."
>>>
>>> I'm not sure how appropriate it is in these circumstances, but one of
>>> the things that drives me up the wall with guis is how you're forced to
>>> use sliders/mice so much. A graphical widget should have a button that
>>> converts it into an input window - eg I sometimes want to enter colours
>>> as pantones.
>>>
>>> Most people are visual. Most people prefer sliders. Just remember that
>>> some of us don't ... :-) That's why I'm a WordPerfect fan - it's so easy
>>> to use an input dialog that plonks things *exactly* where you want them
>>> rather than dragging and hoping you've dropped it in the right place :-)
>>
>> Though we will be introducing more graphical widgets, they will be
>> accompanied by regular input fields that users can view/input the exact
>> value. E.g. the transparency slider and spinbox field in the area
>> content panel.
>>
> That's great. It's just that sometimes us text people get forgotten :-(
> 

Text input is also important for screen reader users :) I guess you can
make a slider accessible, but a text entry will always work better.

Best,
-- 
Jacobo Aragunde
Software Engineer at Igalia
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice


[Libreoffice-commits] core.git: vcl/unx

2015-12-28 Thread Jacobo Aragunde Pérez
 vcl/unx/gtk/a11y/atkwrapper.cxx |   41 
 1 file changed, 21 insertions(+), 20 deletions(-)

New commits:
commit b250f3ddd7d8a14746b4df1029b7cbf3ae86b1d1
Author: Jacobo Aragunde Pérez 
Date:   Mon Dec 28 12:38:59 2015 +0100

tdf#75191: only call atk_register_role if strictly necessary

As part of tdf#39944, the mappings of UNO and ATK roles have been
reviewed and right now there is a match in ATK for every UNO role.

Still, some protection must be done in case of running LO with an
old ATK version that does not contain all the roles we need. The
function registerRole serves this purpose now, and it has been
renamed consequently.

Finally, removed a redundant mapping of the HEADING role.

Change-Id: I7a19c3f3efa5d6ff2697c19e3ae7856d4702a253

diff --git a/vcl/unx/gtk/a11y/atkwrapper.cxx b/vcl/unx/gtk/a11y/atkwrapper.cxx
index c71aa77..5def4fe 100644
--- a/vcl/unx/gtk/a11y/atkwrapper.cxx
+++ b/vcl/unx/gtk/a11y/atkwrapper.cxx
@@ -176,11 +176,12 @@ AtkStateType mapAtkState( sal_Int16 nState )
 return type;
 }
 
-static inline AtkRole registerRole( const gchar * name )
+static inline AtkRole getRoleForName( const gchar * name )
 {
 AtkRole ret = atk_role_for_name( name );
 if( ATK_ROLE_INVALID == ret )
 {
+// this should only happen in old ATK versions
 SAL_WNODEPRECATED_DECLARATIONS_PUSH
 ret = atk_role_register( name );
 SAL_WNODEPRECATED_DECLARATIONS_POP
@@ -220,7 +221,7 @@ static AtkRole mapToAtkRole( sal_Int16 nRole )
 ATK_ROLE_IMAGE,   // GRAPHIC
 ATK_ROLE_UNKNOWN, // GROUP_BOX - registered below
 ATK_ROLE_HEADER,
-ATK_ROLE_HEADING, // HEADING - registered below
+ATK_ROLE_HEADING,
 ATK_ROLE_TEXT,// HYPER_LINK - registered below
 ATK_ROLE_ICON,
 ATK_ROLE_INTERNAL_FRAME,
@@ -294,24 +295,24 @@ static AtkRole mapToAtkRole( sal_Int16 nRole )
 
 if( ! initialized )
 {
-// re-use strings from ATK library
-roleMap[accessibility::AccessibleRole::EDIT_BAR] = 
registerRole("editbar");
-roleMap[accessibility::AccessibleRole::EMBEDDED_OBJECT] = 
registerRole("embedded");
-roleMap[accessibility::AccessibleRole::CHART] = registerRole("chart");
-roleMap[accessibility::AccessibleRole::CAPTION] = 
registerRole("caption");
-roleMap[accessibility::AccessibleRole::DOCUMENT] = 
registerRole("document frame");
-roleMap[accessibility::AccessibleRole::HEADING] = 
registerRole("heading");
-roleMap[accessibility::AccessibleRole::PAGE] = registerRole("page");
-roleMap[accessibility::AccessibleRole::SECTION] = 
registerRole("section");
-roleMap[accessibility::AccessibleRole::FORM] = registerRole("form");
-roleMap[accessibility::AccessibleRole::GROUP_BOX] = 
registerRole("grouping");
-roleMap[accessibility::AccessibleRole::COMMENT] = 
registerRole("comment");
-roleMap[accessibility::AccessibleRole::IMAGE_MAP] = 
registerRole("image map");
-roleMap[accessibility::AccessibleRole::TREE_ITEM] = registerRole("tree 
item");
-roleMap[accessibility::AccessibleRole::HYPER_LINK] = 
registerRole("link");
-roleMap[accessibility::AccessibleRole::END_NOTE] = 
registerRole("comment");
-roleMap[accessibility::AccessibleRole::FOOTNOTE] = 
registerRole("comment");
-roleMap[accessibility::AccessibleRole::NOTE] = registerRole("comment");
+// the accessible roles below were added to ATK in later versions,
+// with role_for_name we will know if they exist in runtime.
+roleMap[accessibility::AccessibleRole::EDIT_BAR] = 
getRoleForName("editbar");
+roleMap[accessibility::AccessibleRole::EMBEDDED_OBJECT] = 
getRoleForName("embedded");
+roleMap[accessibility::AccessibleRole::CHART] = 
getRoleForName("chart");
+roleMap[accessibility::AccessibleRole::CAPTION] = 
getRoleForName("caption");
+roleMap[accessibility::AccessibleRole::DOCUMENT] = 
getRoleForName("document frame");
+roleMap[accessibility::AccessibleRole::PAGE] = getRoleForName("page");
+roleMap[accessibility::AccessibleRole::SECTION] = 
getRoleForName("section");
+roleMap[accessibility::AccessibleRole::FORM] = getRoleForName("form");
+roleMap[accessibility::AccessibleRole::GROUP_BOX] = 
getRoleForName("grouping");
+roleMap[accessibility::AccessibleRole::COMMENT] = 
getRoleForName("comment");
+roleMap[accessibility::AccessibleRole::IMAGE_MAP] = 
getRoleForName("image map");
+roleMap[accessibility::AccessibleRole::TREE_ITEM] = 
getRoleForName("tree item");
+roleMap[accessibility::AccessibleRole::HYPER_LINK] = 
getRoleForName("link");
+roleMap[accessibility::AccessibleRole::END_NOTE] = 
getRoleForName("comment");
+roleMap[accessibility::AccessibleRole::FOOTNOTE] = 

Re: Why is my anonym git repository not up-to-date?

2015-12-01 Thread Jacobo Aragunde Pérez
El 01/12/15 a las 16:30, jodoe escribió:
> ...
> So my question: What I am doing wrong with git? I want the normal, official
> sources which are used to compile the downloadable libreoffice from
> libreoffice.org. When there a version 5.0.3 is offered, then I also must be
> able to see a 5.0.3 somewhere in the git tags?
> 

Yes, but you must ask git explicitly to get all tags. Try:

./g fetch --tags

By the way, I was just in the same problem last week :D

Regards,
-- 
Jacobo Aragunde
Software Engineer at Igalia
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: CAD software integration

2015-11-11 Thread Jacobo Aragunde Pérez
Hi Gastón,

first of all, thanks for your interest in LibreOffice and in open source.

El 10/11/15 a las 19:42, Gastón J. Avila escribió:
> Hi all,
> 
> With a number of people we have been evaluating open-source CAD
> applications. We would like to know if you think it would be a good idea
> to start a working on adding to the set of applications offered by
> libreoffice, one CAD application.
> 

In LibreOffice community you can find around 80 different monthly code
contributors, and that's not even counting QA, localization or
documentation. Still, some pieces of our package are not as good as we
would like (I'm looking at you, Base).

You can see where my answer is going: the effort of developing and
maintaining a new piece in this puzzle is huge. Even more with something
so complex as CAD software. The existing community won't be able to
absorb that workload, even in case they/we wanted to.

> There are a number of opensource alternatives to products like autocad
> but none of them seem actively developed, so we would like to know to
> which extent it is possible to have a libreoffice application be
> developed outside the current choices of language+build system.
> 

It's really unfortunate there is a lack of FLOSS offer in such an
important area, but that shouldn't be put on the shoulders of the LO
community. Trying to gather a community around one of the existing tools
or a new one, ideally with some actors providing funding in the shape of
development time or money to hire it, should be a more successful (but
difficult and costly) approach.

Best regards,
-- 
Jacobo Aragunde
Software Engineer at Igalia
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


[Libreoffice-commits] core.git: 4 commits - android/source

2015-09-11 Thread Jacobo Aragunde Pérez
 android/source/res/values/strings.xml  
|5 
 android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java   
|   97 +-
 android/source/src/java/org/libreoffice/storage/DocumentProviderFactory.java   
|   17 -
 android/source/src/java/org/libreoffice/storage/IDocumentProvider.java 
|   11 +
 android/source/src/java/org/libreoffice/storage/IFile.java 
|8 
 
android/source/src/java/org/libreoffice/storage/local/LocalDocumentsDirectoryProvider.java
 |4 
 
android/source/src/java/org/libreoffice/storage/local/LocalDocumentsProvider.java
  |   11 +
 android/source/src/java/org/libreoffice/storage/local/LocalFile.java   
|5 
 android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java 
|   22 ++
 android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java 
|   10 -
 android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java  
|9 
 11 files changed, 182 insertions(+), 17 deletions(-)

New commits:
commit a952540aeba688b10eb1ecd1194c95610ba7f350
Author: Jacobo Aragunde Pérez 
Date:   Fri Sep 11 16:56:31 2015 +

Android: i18-ize some strings

Change-Id: I35d0ef7976d6dcca65f3335ff9175c799faa99fe

diff --git a/android/source/res/values/strings.xml 
b/android/source/res/values/strings.xml
index 5e2dd9b..c7d6e63 100644
--- a/android/source/res/values/strings.xml
+++ b/android/source/res/values/strings.xml
@@ -64,6 +64,11 @@
 Show keyboard
 Save
 
+
+Save complete
+Saving the document...
+Save incomplete. Were there any 
changes?
+
 
 Storage provider settings
 ownCloud settings
diff --git 
a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java 
b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java
index 255c474..c7fb342 100644
--- a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java
+++ b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java
@@ -258,7 +258,7 @@ public class LibreOfficeMainActivity extends 
ActionBarActivity {
 private void saveDocument() {
 final long lastModified = mInputFile.lastModified();
 final Activity activity = LibreOfficeMainActivity.this;
-Toast.makeText(this, "Saving the document...", 
Toast.LENGTH_SHORT).show();
+Toast.makeText(this, R.string.message_saving, 
Toast.LENGTH_SHORT).show();
 // local save
 LOKitShell.sendEvent(new LOEvent(LOEvent.UNO_COMMAND, ".uno:Save"));
 
@@ -287,8 +287,8 @@ public class LibreOfficeMainActivity extends 
ActionBarActivity {
 
 @Override
 protected void onPostExecute(Void param) {
-Toast.makeText(activity, "Save complete", Toast.LENGTH_SHORT)
-.show();
+Toast.makeText(activity, R.string.message_saved,
+Toast.LENGTH_SHORT).show();
 }
 };
 // Delay the call to document provider save operation and check the
@@ -312,7 +312,7 @@ public class LibreOfficeMainActivity extends 
ActionBarActivity {
 // 20 seconds later, the local file has not changed,
 // maybe there were no changes at all
 Toast.makeText(activity,
-"Save incomplete. Were there any changes?",
+R.string.message_save_incomplete,
 Toast.LENGTH_LONG).show();
 }
 }
commit 315ca033c696a6d7339a4c3f2fc617e01d80fcb8
Author: Jacobo Aragunde Pérez 
Date:   Fri Sep 11 12:10:41 2015 +

Android: check file modify date to know if save is complete

The API does not allow to set a callback for the save operation, we
work this limitation around by checking the modification date of the
local file periodically. When that date changes, we are sure the
local save operation is complete and we can invoke the document
provider save operation to push the changes to the cloud, if
necessary.

Users may press "save" on a document with no changes, in this case we
have set a 20 seconds limit to stop checking the modification date.

We also add a "save complete" message for the user.

Change-Id: Ib8871fac682a5c03a187a7238e11874984143527

diff --git 
a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java 
b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java
index 098a91b..255c474 100644
--- a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java
+++ b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java
@@ -256,6 +256,8 @@ public class LibreOfficeMainActivity extends 

Re: not able to clone translations from git

2015-06-29 Thread Jacobo Aragunde Pérez
Hi Rachna,

try replacing the URL to the dictionaries repo in the .gitmodules file
with the following HTTP mirror and see what happens:

http://anongit.freedesktop.org/git/libreoffice/dictionaries.git

Anyway, we cannot deal with your company's system policies; if you keep
having trouble you should check with your sysadmin/systems
department/etc. O:)

Regards,
-- 
Jacobo Aragunde
Software Engineer at Igalia


El 26/06/15 a las 06:53, Rachna Goel escribió:
 Hi
 
 Yes, Norbert
 I cloned source code via this link
  git clone http://anongit.freedesktop.org/git/libreoffice/core.git # slower
 
 I am trying to configure it for Indian Languages, For.e.g hi
 
 after /usr/bin/make
 It tries to clone translation repo.
 and yes, our organization hasve a proxy server --  :(
 Please help!!
 
 
 
 
 - Original Message - 
 From: Norbert Thiebaud nthieb...@gmail.com
 To: rachnag rach...@cdac.in
 Cc: libreoffice libreoffice@lists.freedesktop.org
 Sent: Friday, June 26, 2015 4:25 AM
 Subject: Re: not able to clone translations from git
 
 
 On Thu, Jun 25, 2015 at 7:14 AM, rachnag rach...@cdac.in wrote:

 fatal: unable to connect to gerrit.libreoffice.org:
 gerrit.libreoffice.org[0: 89.238.68.148]: errno=Connection refused

 Clone of 'git://gerrit.libreoffice.org/translations' into submodule path
 'translations' failed
 Makefile:210: recipe for target 'get-submodules' failed
 make: *** [get-submodules] Error 1

 I understand its not able to get translations from git.

 Any help in this regard is highly appreciable.

 I did not have the time at which you did this.. but I looked at the
 logs a little before you sent that email and git-deamon is serving
 things fine... I can see in the log that we are serving
 /translation.git as well

 bear in mind that git:// protocol operate on port 9418..
 so let me make a guess here:
 you downloaded a tarball of core.git unpacked it and then try to
 configure it for a language...
 build tried to then clone the translation repo because it was not
 available (not downloaded as a tarball) and there is a firewall
 between your machine and our host that blocked that.

 How close am I ?

 Norbert
 
 ---
 [ C-DAC is on Social-Media too. Kindly follow us at:
 Facebook: https://www.facebook.com/CDACINDIA  Twitter: @cdacindia ]
 
 This e-mail is for the sole use of the intended recipient(s) and may
 contain confidential and privileged information. If you are not the
 intended recipient, please contact the sender by reply e-mail and destroy
 all copies and the original message. Any unauthorized review, use,
 disclosure, dissemination, forwarding, printing or copying of this email
 is strictly prohibited and appropriate legal action will be taken.
 ---
 
 ___
 LibreOffice mailing list
 LibreOffice@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/libreoffice
 

___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: Changing mindset of core LO developers to the status of master -- was test infrastructure ideas appreciated ...

2015-06-12 Thread Jacobo Aragunde Pérez
El 11/06/15 a las 08:44, David Ostrovsky escribió:
 On Wed, Wed Jun 10 12:22:53 PDT 2015, Norbert Thiebaud wrot
 
 All that being said, none of that matter if the culture does not
 follow. no amount of CI can make people care.. what set the tone is
 the core developer group, the rest of us looks around how it is done
 and emulate the behavior.
 
 Nothing causes more pain, frustration and disappointment than
 unfulfilled expectations.
 
 I expect that master is always green. My definition of green is:
 
   $ make check
 
 with --enable-werror is passing on all three platforms: Linux|Mac|Win
 64.
 

In my opinion, this should be so. It does not make sense to me to have a
bleeding branch, you can always work on a feature branch and rebase it
on top of master every now and then to have a similar, unstable environment.

The solution to have a green master could be adding some more automation
to our Gerrit; we already can push commits there and get them checked in
the three main platforms by Jenkins. Like Miklos suggested in this email
[1], we could push the patches to Gerrit with CR+2 and get them merged
automatically by Jenkins when it sets the V+1. It would require some
work on Gerrit or the Jenkins bot - or both.

[1]
http://article.gmane.org/gmane.comp.documentfoundation.libreoffice.devel/65110

Best,
-- 
Jacobo Aragunde
Software Engineer at Igalia
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


[Libreoffice-commits] core.git: android/source configure.ac download.lst external/Module_external.mk external/owncloud-android-lib Makefile.fetch RepositoryExternal.mk

2015-06-10 Thread Jacobo Aragunde Pérez
 Makefile.fetch|1 
 RepositoryExternal.mk |   16 
++
 android/source/Makefile   |2 
 configure.ac  |3 +
 download.lst  |2 
 external/Module_external.mk   |1 
 external/owncloud-android-lib/ExternalProject_owncloud_android_lib.mk |   24 
++
 external/owncloud-android-lib/Makefile|7 ++
 external/owncloud-android-lib/Module_owncloud-android-lib.mk  |   17 
+++
 external/owncloud-android-lib/README  |7 ++
 external/owncloud-android-lib/UnpackedTarball_owncloud_android_lib.mk |   14 
+
 11 files changed, 94 insertions(+)

New commits:
commit e6fe508d6835590c6245e62e2c014808453e7d92
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Mon Feb 2 19:49:37 2015 +

Android: add ownCloud library to the build.

Library code from https://github.com/jaragunde/owncloud-android-library

This patch downloads, builds and installs the library from a tarball
uploaded to http://dev-www.libreoffice.org/src/.

Change-Id: I28afaea4dabe2dab869b53b1881f4d5a6522943f
Reviewed-on: https://gerrit.libreoffice.org/16190
Tested-by: Jenkins c...@libreoffice.org
Reviewed-by: Jacobo Aragunde Pérez jaragu...@igalia.com

diff --git a/Makefile.fetch b/Makefile.fetch
index 7aee66a..390d3d0 100644
--- a/Makefile.fetch
+++ b/Makefile.fetch
@@ -189,6 +189,7 @@ $(WORKDIR)/download: $(BUILDDIR)/config_host.mk 
$(SRCDIR)/download.lst $(SRCDIR)
$(call fetch_Optional,OPENLDAP,OPENLDAP_TARBALL) \
$(call fetch_Optional,OPENSSL,OPENSSL_TARBALL) \
$(call fetch_Optional,ORCUS,ORCUS_TARBALL) \
+   $(call 
fetch_Optional,OWNCLOUD_ANDROID_LIB,OWNCLOUD_ANDROID_LIB_TARBALL) \
$(call fetch_Optional,PAGEMAKER,PAGEMAKER_TARBALL) \
$(call fetch_Optional,POPPLER,POPPLER_TARBALL) \
$(call fetch_Optional,POSTGRESQL,POSTGRESQL_TARBALL) \
diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 726ef75..5b8b3a2 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -4104,4 +4104,20 @@ endef
 
 endif
 
+ifeq (OWNCLOUD_ANDROID_LIB,$(filter OWNCLOUD_ANDROID_LIB,$(BUILD_TYPE)))
+
+$(eval $(call gb_Helper_register_jars,OXT,\
+   owncloud-android-library \
+))
+
+define gb_Jar__use_owncloud_android_lib
+$(call gb_Jar_use_external_project,$(1),owncloud-android-lib)
+$(call gb_Jar_use_external_jar,$(1),$(call 
gb_UnpackedTarball_get_dir,owncloud-android-lib)/bin/owncloud-android-library.jar)
+endef
+define gb_ExternalProject__use_owncloud_android_lib
+$(call gb_ExternalProject_use_external_project,$(1),owncloud_android_lib)
+endef
+
+endif
+
 # vim: set noet sw=4 ts=4:
diff --git a/android/source/Makefile b/android/source/Makefile
index 3bf2c15..6f70a91 100644
--- a/android/source/Makefile
+++ b/android/source/Makefile
@@ -32,6 +32,8 @@ build-ant: android_version_setup copy-stuff prepare-appcompat 
link-so properties
for F in unoil; do \
$(call COPYJAR,$(INSTDIR)/$(LIBO_SHARE_JAVA_FOLDER)/$${F}.jar); \
done
+   #ownCloud lib dependency
+   $(call 
COPYJAR,$(WORKDIR)/UnpackedTarball/owncloud_android_lib/bin/owncloud-android-library.jar)
 #
unset JAVA_HOME  $(ANT) $(if $(VERBOSE)$(verbose),,-quiet) $(if 
$(ENABLE_RELEASE_BUILD),release,debug)
 
diff --git a/configure.ac b/configure.ac
index 2ebe501..178c663 100644
--- a/configure.ac
+++ b/configure.ac
@@ -511,6 +511,9 @@ if test -n $with_android_ndk; then
 ;;
 esac
 fi
+
+# remember to download the ownCloud Android library later
+BUILD_TYPE=$BUILD_TYPE OWNCLOUD_ANDROID_LIB
 fi
 AC_SUBST(ANDROID_NDK_GDBSERVER)
 AC_SUBST(ANDROID_APP_ABI)
diff --git a/download.lst b/download.lst
index 7b4bfe4..fdb4d5c 100644
--- a/download.lst
+++ b/download.lst
@@ -119,6 +119,8 @@ export OPENLDAP_TARBALL := 
804c6cb5698db30b75ad0ff1c25baefd-openldap-2.4.31.tgz
 export OPENSSL_MD5SUM := a06c547dac9044161a477211049f60ef
 export OPENSSL_TARBALL := openssl-1.0.2a.tar.gz
 export ORCUS_TARBALL := 18814358772ed7bb476e04b0384af082-liborcus-0.9.1.tar.gz
+export OWNCLOUD_ANDROID_LIB_MD5SUM := 593f0aa47bf2efc0efda2d28fae063b2
+export OWNCLOUD_ANDROID_LIB_TARBALL := 
owncloud-android-library-0.9.4-no-binary-deps.tar.gz
 export PAGEMAKER_MD5SUM := 795cc7a59ace4db2b12586971d668671
 export PAGEMAKER_TARBALL := libpagemaker-0.0.2.tar.bz2
 export PIXMAN_TARBALL := c63f411b3ad147db2bcce1bf262a0e02-pixman-0.24.4.tar.bz2
diff --git a/external/Module_external.mk b/external/Module_external.mk
index 6d38fd5..8b4fb6c 100644
--- a/external/Module_external.mk
+++ b/external/Module_external.mk
@@ -80,6 

[Libreoffice-commits] core.git: external/owncloud-android-lib

2015-06-10 Thread Jacobo Aragunde Pérez
 external/owncloud-android-lib/ExternalProject_owncloud_android_lib.mk |1 +
 1 file changed, 1 insertion(+)

New commits:
commit 2e6ed9befe172bcbfb14d5386bf3e0f151d0d666
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Wed Jun 10 14:26:10 2015 +

Android: fix ownCloud lib build

The build relied on the presence of ANDROID_HOME envvar, now we pass
it explicitly.

Change-Id: If33ee2c6a22435151aad244378ee5aaf7b3cc913

diff --git 
a/external/owncloud-android-lib/ExternalProject_owncloud_android_lib.mk 
b/external/owncloud-android-lib/ExternalProject_owncloud_android_lib.mk
index 21081c4..679981b 100644
--- a/external/owncloud-android-lib/ExternalProject_owncloud_android_lib.mk
+++ b/external/owncloud-android-lib/ExternalProject_owncloud_android_lib.mk
@@ -18,6 +18,7 @@ $(call 
gb_ExternalProject_get_state_target,owncloud_android_lib,build) :
$(ICECREAM_RUN) $(ANT) \
-q \
-f build.xml \
+   -Dsdk.dir=$(ANDROID_SDK_HOME) \
release \
)
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: android/source

2015-06-10 Thread Jacobo Aragunde Pérez
 android/source/res/menu/view_menu.xml |2 ++
 android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java |5 
+
 2 files changed, 7 insertions(+)

New commits:
commit ba44368da5933040080da611aa1722491f89df69
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Mon Feb 9 14:10:29 2015 +0100

Android: add menu entry for document provider settings

Change-Id: Ic48275fe2e7d83fd5e77171f4f5740a527dec7e2
Reviewed-on: https://gerrit.libreoffice.org/16195
Reviewed-by: Jacobo Aragunde Pérez jaragu...@igalia.com
Tested-by: Jacobo Aragunde Pérez jaragu...@igalia.com

diff --git a/android/source/res/menu/view_menu.xml 
b/android/source/res/menu/view_menu.xml
index 32825b5..b89ff30 100644
--- a/android/source/res/menu/view_menu.xml
+++ b/android/source/res/menu/view_menu.xml
@@ -10,6 +10,8 @@
   android:title=@string/menu_sort_az/
 item android:id=@+id/menu_sort_modified
   android:title=@string/menu_sort_modified/
+item android:id=@+id/menu_storage_preferences
+  android:title=@string/storage_provider_settings/
 item android:id=@+id/action_about
   android:title=@string/action_about
   android:orderInCategory=100/
diff --git 
a/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java 
b/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
index 76842ec..a8f4276 100644
--- a/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
+++ b/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
@@ -53,6 +53,7 @@ import org.libreoffice.LibreOfficeMainActivity;
 import org.libreoffice.R;
 import org.libreoffice.SettingsActivity;
 import org.libreoffice.storage.DocumentProviderFactory;
+import org.libreoffice.storage.DocumentProviderSettingsActivity;
 import org.libreoffice.storage.IDocumentProvider;
 import org.libreoffice.storage.IFile;
 
@@ -461,6 +462,10 @@ public class LibreOfficeUIActivity extends 
ActionBarActivity implements ActionBa
 case R.id.action_settings:
 startActivity(new Intent(getApplicationContext(), 
SettingsActivity.class));
 return true;
+case R.id.menu_storage_preferences:
+startActivity(new Intent(this, 
DocumentProviderSettingsActivity.class));;
+break;
+
 default:
 return super.onOptionsItemSelected(item);
 }
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: android/source

2015-06-10 Thread Jacobo Aragunde Pérez
 
android/source/src/java/org/libreoffice/storage/DocumentProviderSettingsActivity.java
 |5 ++
 android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java 
   |   19 +++---
 2 files changed, 20 insertions(+), 4 deletions(-)

New commits:
commit 79f5d4465c7a2446f3d54bca56f9987f322d59e8
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Mon Feb 9 14:04:59 2015 +0100

Android: setup ownCloud provider with user-defined settings

Change-Id: I4ad4dd12854ca9f332055a50131959f60f7da504
Reviewed-on: https://gerrit.libreoffice.org/16194
Reviewed-by: Jacobo Aragunde Pérez jaragu...@igalia.com
Tested-by: Jacobo Aragunde Pérez jaragu...@igalia.com

diff --git 
a/android/source/src/java/org/libreoffice/storage/DocumentProviderSettingsActivity.java
 
b/android/source/src/java/org/libreoffice/storage/DocumentProviderSettingsActivity.java
index bb04855..d17fe51 100644
--- 
a/android/source/src/java/org/libreoffice/storage/DocumentProviderSettingsActivity.java
+++ 
b/android/source/src/java/org/libreoffice/storage/DocumentProviderSettingsActivity.java
@@ -16,6 +16,11 @@ import android.os.Bundle;
 import android.preference.PreferenceFragment;
 
 public class DocumentProviderSettingsActivity extends Activity {
+
+public static final String KEY_PREF_OWNCLOUD_SERVER = pref_server_url;
+public static final String KEY_PREF_OWNCLOUD_USER_NAME = pref_user_name;
+public static final String KEY_PREF_OWNCLOUD_PASSWORD = pref_password;
+
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
diff --git 
a/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
 
b/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
index db2b698..a94e1ad 100644
--- 
a/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
+++ 
b/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
@@ -4,11 +4,14 @@ import java.io.File;
 import java.net.URI;
 
 import org.libreoffice.R;
+import org.libreoffice.storage.DocumentProviderSettingsActivity;
 import org.libreoffice.storage.IDocumentProvider;
 import org.libreoffice.storage.IFile;
 
 import android.content.Context;
+import android.content.SharedPreferences;
 import android.net.Uri;
+import android.preference.PreferenceManager;
 
 import com.owncloud.android.lib.common.OwnCloudClient;
 import com.owncloud.android.lib.common.OwnCloudClientFactory;
@@ -26,12 +29,20 @@ public class OwnCloudProvider implements IDocumentProvider {
 private OwnCloudClient client;
 private File cacheDir;
 
-// TODO: these must be configurable
-final private String serverUrl = http://10.0.2.2/owncloud;; //emulator 
host machine
-final private String userName = admin;
-final private String password = admin;
+private String serverUrl;
+private String userName;
+private String password;
 
 public OwnCloudProvider(Context context) {
+// read preferences
+SharedPreferences preferences = 
PreferenceManager.getDefaultSharedPreferences(context);
+serverUrl = preferences.getString(
+DocumentProviderSettingsActivity.KEY_PREF_OWNCLOUD_SERVER, );
+userName = preferences.getString(
+DocumentProviderSettingsActivity.KEY_PREF_OWNCLOUD_USER_NAME, 
);
+password = preferences.getString(
+DocumentProviderSettingsActivity.KEY_PREF_OWNCLOUD_PASSWORD, 
);
+
 Uri serverUri = Uri.parse(serverUrl);
 client = OwnCloudClientFactory.createOwnCloudClient(serverUri,
 context, true);
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: android/source

2015-06-10 Thread Jacobo Aragunde Pérez
 android/source/AndroidManifest.xml.in  
   |8 ++
 android/source/res/values/strings.xml  
   |8 ++
 android/source/res/xml/documentprovider_preferences.xml
   |   26 +++
 
android/source/src/java/org/libreoffice/storage/DocumentProviderSettingsActivity.java
 |   37 ++
 android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java  
   |3 
 5 files changed, 82 insertions(+)

New commits:
commit d5c9d1dec60085f97eb07402eefcc3fd7a989877
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Mon Feb 9 12:37:46 2015 +0100

Android: settings activity for document providers

Creates an activity to manage the settings of any document provider
that needs them, and populated it with the settings required by the
ownCloud implementation.

The settings screen is not yet plugged to the document browser UI but
can be launched with this command:

  adb shell am start -a android.intent.action.MAIN \
  -n org.libreoffice/.storage.DocumentProviderSettingsActivity

Change-Id: I83cff641fa61078f2bddbb98262af989c06985a9
Reviewed-on: https://gerrit.libreoffice.org/16193
Reviewed-by: Jacobo Aragunde Pérez jaragu...@igalia.com
Tested-by: Jacobo Aragunde Pérez jaragu...@igalia.com

diff --git a/android/source/AndroidManifest.xml.in 
b/android/source/AndroidManifest.xml.in
index 06b8089..b459182 100644
--- a/android/source/AndroidManifest.xml.in
+++ b/android/source/AndroidManifest.xml.in
@@ -106,6 +106,14 @@
 /intent-filter
 /activity
 
+!-- Document Provider Settings Activity --
+activity android:name=.storage.DocumentProviderSettingsActivity
+  android:label=@string/storage_provider_settings
+intent-filter
+action android:name=android.intent.action.MAIN /
+/intent-filter
+/activity
+
 /application
 
 /manifest
diff --git a/android/source/res/values/strings.xml 
b/android/source/res/values/strings.xml
index d978413..d2970b2 100644
--- a/android/source/res/values/strings.xml
+++ b/android/source/res/values/strings.xml
@@ -57,4 +57,12 @@
 string name=action_keyboardShow keyboard/string
 string name=action_saveSave/string
 
+!-- Document provider settings --
+string name=storage_provider_settingsStorage provider settings/string
+string name=owncloud_settingsownCloud settings/string
+string name=server_urlServer URL/string
+string name=server_url_and_portURL and port of the ownCloud 
server./string
+string name=user_nameUser name/string
+string name=passwordPassword/string
+
 /resources
diff --git a/android/source/res/xml/documentprovider_preferences.xml 
b/android/source/res/xml/documentprovider_preferences.xml
new file mode 100644
index 000..a359d14
--- /dev/null
+++ b/android/source/res/xml/documentprovider_preferences.xml
@@ -0,0 +1,26 @@
+?xml version=1.0 encoding=utf-8?
+!--
+ This file is part of the LibreOffice project.
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ --
+PreferenceScreen xmlns:android=http://schemas.android.com/apk/res/android;
+PreferenceCategory
+android:title=@string/owncloud_settings
+android:key=pref_key_owncloud_settings
+EditTextPreference
+android:key=pref_server_url
+android:title=@string/server_url
+android:summary=@string/server_url_and_port
+android:defaultValue=http://; /
+EditTextPreference
+android:key=pref_user_name
+android:title=@string/user_name
+android:defaultValue= /
+EditTextPreference
+android:key=pref_password
+android:title=@string/password
+android:defaultValue= /
+/PreferenceCategory
+/PreferenceScreen
diff --git 
a/android/source/src/java/org/libreoffice/storage/DocumentProviderSettingsActivity.java
 
b/android/source/src/java/org/libreoffice/storage/DocumentProviderSettingsActivity.java
new file mode 100644
index 000..bb04855
--- /dev/null
+++ 
b/android/source/src/java/org/libreoffice/storage/DocumentProviderSettingsActivity.java
@@ -0,0 +1,37 @@
+/* -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+package org.libreoffice.storage;
+
+import org.libreoffice.R;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.preference.PreferenceFragment;
+
+public class 

[Libreoffice-commits] core.git: android/source

2015-06-10 Thread Jacobo Aragunde Pérez
 android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java 
|   11 ++-
 android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java 
|   32 ++
 2 files changed, 41 insertions(+), 2 deletions(-)

New commits:
commit d6f9e415375f53eba7c5e147c7ff30c03a6db731
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Tue Jan 27 12:44:42 2015 +

Android: download documents from ownCloud.

Documents are downloaded to the private cache directory of the app,
and opened from there. That directory is cleared and created again
every time the application starts up.

Change-Id: I5c05c8ae750b6ced3b419c67d84063e8ee3d84aa
Reviewed-on: https://gerrit.libreoffice.org/16192
Reviewed-by: Jacobo Aragunde Pérez jaragu...@igalia.com
Tested-by: Jacobo Aragunde Pérez jaragu...@igalia.com

diff --git 
a/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java 
b/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
index 8e6d6cf..a8d1a06 100644
--- a/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
+++ b/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
@@ -10,6 +10,7 @@ import java.util.List;
 import org.libreoffice.storage.IFile;
 
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import com.owncloud.android.lib.resources.files.DownloadRemoteFileOperation;
 import com.owncloud.android.lib.resources.files.ReadRemoteFolderOperation;
 import com.owncloud.android.lib.resources.files.RemoteFile;
 
@@ -97,8 +98,14 @@ public class OwnCloudFile implements IFile {
 
 @Override
 public File getDocument() {
-// TODO Auto-generated method stub
-return null;
+if (isDirectory()) {
+return null;
+}
+File downFolder = provider.getCacheDir();
+DownloadRemoteFileOperation operation = new 
DownloadRemoteFileOperation(
+file.getRemotePath(), downFolder.getAbsolutePath());
+operation.execute(provider.getClient());
+return new File(downFolder.getAbsolutePath() + file.getRemotePath());
 }
 
 @Override
diff --git 
a/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
 
b/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
index 7bd78e3..db2b698 100644
--- 
a/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
+++ 
b/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
@@ -1,5 +1,6 @@
 package org.libreoffice.storage.owncloud;
 
+import java.io.File;
 import java.net.URI;
 
 import org.libreoffice.R;
@@ -23,6 +24,7 @@ import com.owncloud.android.lib.resources.files.RemoteFile;
 public class OwnCloudProvider implements IDocumentProvider {
 
 private OwnCloudClient client;
+private File cacheDir;
 
 // TODO: these must be configurable
 final private String serverUrl = http://10.0.2.2/owncloud;; //emulator 
host machine
@@ -36,6 +38,13 @@ public class OwnCloudProvider implements IDocumentProvider {
 client.setCredentials(OwnCloudCredentialsFactory.newBasicCredentials(
 userName, password));
 
+// make sure cache directory exists, and clear it
+// TODO: probably we should do smarter cache management
+cacheDir = new File(context.getCacheDir(), ownCloud);
+if (cacheDir.exists()) {
+deleteRecursive(cacheDir);
+}
+cacheDir.mkdirs();
 }
 
 @Override
@@ -73,4 +82,27 @@ public class OwnCloudProvider implements IDocumentProvider {
 return client;
 }
 
+/**
+ * Used by OwnCloudFiles to get the cache directory they should download
+ * files to.
+ *
+ * @return cache directory.
+ */
+protected File getCacheDir() {
+return cacheDir;
+}
+
+/**
+ * Deletes files and recursively deletes directories.
+ *
+ * @param file
+ *File or directory to be deleted.
+ */
+private void deleteRecursive(File file) {
+if (file.isDirectory()) {
+for (File child : file.listFiles())
+deleteRecursive(child);
+}
+file.delete();
+}
 }
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: android/source

2015-06-10 Thread Jacobo Aragunde Pérez
 android/source/src/java/org/libreoffice/storage/DocumentProviderFactory.java   
   |   14 +++
 
android/source/src/java/org/libreoffice/storage/DocumentProviderSettingsActivity.java
 |   27 ++
 android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java 
   |   42 --
 3 files changed, 77 insertions(+), 6 deletions(-)

New commits:
commit f8a4e1aab608538567562d97e6da60f015337c47
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Mon Feb 9 20:20:11 2015 +0100

Android: document providers listen to changes in preferences.

With this patch, document providers are able to listen to changes in
their preferences and update their internal state accordingly. Now
ownCloud provider can see its server updated without restarting the
application.

Change-Id: I833c7ec9fc97be58bdc8ac2cbf4384a33c2b400e
Reviewed-on: https://gerrit.libreoffice.org/16196
Reviewed-by: Jacobo Aragunde Pérez jaragu...@igalia.com
Tested-by: Jacobo Aragunde Pérez jaragu...@igalia.com

diff --git 
a/android/source/src/java/org/libreoffice/storage/DocumentProviderFactory.java 
b/android/source/src/java/org/libreoffice/storage/DocumentProviderFactory.java
index 3d462e6..612eaa6 100644
--- 
a/android/source/src/java/org/libreoffice/storage/DocumentProviderFactory.java
+++ 
b/android/source/src/java/org/libreoffice/storage/DocumentProviderFactory.java
@@ -9,11 +9,15 @@
 
 package org.libreoffice.storage;
 
+import java.util.HashSet;
+import java.util.Set;
+
 import org.libreoffice.storage.local.LocalDocumentsDirectoryProvider;
 import org.libreoffice.storage.local.LocalDocumentsProvider;
 import org.libreoffice.storage.owncloud.OwnCloudProvider;
 
 import android.content.Context;
+import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
 
 /**
  * Keeps the instances of the available IDocumentProviders in the system.
@@ -103,4 +107,14 @@ public final class DocumentProviderFactory {
 public IDocumentProvider getDefaultProvider() {
 return providers[0];
 }
+
+public SetOnSharedPreferenceChangeListener getChangeListeners() {
+SetOnSharedPreferenceChangeListener listeners =
+new HashSetOnSharedPreferenceChangeListener();
+for (IDocumentProvider provider : providers) {
+if (provider instanceof OnSharedPreferenceChangeListener)
+listeners.add((OnSharedPreferenceChangeListener) provider);
+}
+return listeners;
+}
 }
diff --git 
a/android/source/src/java/org/libreoffice/storage/DocumentProviderSettingsActivity.java
 
b/android/source/src/java/org/libreoffice/storage/DocumentProviderSettingsActivity.java
index d17fe51..e98534a 100644
--- 
a/android/source/src/java/org/libreoffice/storage/DocumentProviderSettingsActivity.java
+++ 
b/android/source/src/java/org/libreoffice/storage/DocumentProviderSettingsActivity.java
@@ -9,11 +9,15 @@
 
 package org.libreoffice.storage;
 
+import java.util.Set;
+
 import org.libreoffice.R;
 
 import android.app.Activity;
+import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
 import android.os.Bundle;
 import android.preference.PreferenceFragment;
+import android.preference.PreferenceManager;
 
 public class DocumentProviderSettingsActivity extends Activity {
 
@@ -21,6 +25,8 @@ public class DocumentProviderSettingsActivity extends 
Activity {
 public static final String KEY_PREF_OWNCLOUD_USER_NAME = pref_user_name;
 public static final String KEY_PREF_OWNCLOUD_PASSWORD = pref_password;
 
+private SetOnSharedPreferenceChangeListener listeners;
+
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
@@ -30,6 +36,27 @@ public class DocumentProviderSettingsActivity extends 
Activity {
 .replace(android.R.id.content, new 
SettingsFragment()).commit();
 }
 
+@Override
+protected void onResume() {
+super.onResume();
+
+listeners = DocumentProviderFactory.getInstance().getChangeListeners();
+for (OnSharedPreferenceChangeListener listener : listeners) {
+PreferenceManager.getDefaultSharedPreferences(this)
+.registerOnSharedPreferenceChangeListener(listener);
+}
+}
+
+@Override
+protected void onPause() {
+super.onPause();
+
+for (OnSharedPreferenceChangeListener listener : listeners) {
+PreferenceManager.getDefaultSharedPreferences(this)
+.unregisterOnSharedPreferenceChangeListener(listener);
+}
+}
+
 public static class SettingsFragment extends PreferenceFragment {
 @Override
 public void onCreate(Bundle savedInstanceState) {
diff --git 
a/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
 
b/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
index a94e1ad..827c0af 100644
--- 

[Libreoffice-commits] core.git: android/source

2015-06-10 Thread Jacobo Aragunde Pérez
 android/source/res/values/strings.xml  
|4 +
 android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java 
|8 +-
 android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java 
|   27 +-
 3 files changed, 34 insertions(+), 5 deletions(-)

New commits:
commit 78ecdbc2f69b9d812cf879f662e7c1277d3c9b07
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Tue Feb 10 16:17:12 2015 +

Android: improve error handling in ownCloud provider.

This provider now throws exceptions with properly internationalized
messages to be shown to the user.

Change-Id: I0464bffe14cab24d50180cb5e2e62ce746bcba74
Reviewed-on: https://gerrit.libreoffice.org/16197
Reviewed-by: Jacobo Aragunde Pérez jaragu...@igalia.com
Tested-by: Jacobo Aragunde Pérez jaragu...@igalia.com

diff --git a/android/source/res/values/strings.xml 
b/android/source/res/values/strings.xml
index d2970b2..94ba49f 100644
--- a/android/source/res/values/strings.xml
+++ b/android/source/res/values/strings.xml
@@ -49,6 +49,10 @@
 string name=local_file_systemLocal file system/string
 string name=owncloudownCloud/string
 
+string name=owncloud_wrong_connectionCannot connect to ownCloud 
server. Check your configuration./string
+string name=owncloud_unauthorizedCannot log into ownCloud server. 
Check your configuration./string
+string name=owncloud_unspecified_errorUnspecified error connecting to 
ownCloud server. Check your configuration and/or try later./string
+
 !-- Edit action names --
 string name=action_boldBold/string
 string name=action_underlineUnderline/string
diff --git 
a/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java 
b/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
index a8d1a06..ce10ab6 100644
--- a/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
+++ b/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
@@ -69,8 +69,7 @@ public class OwnCloudFile implements IFile {
 RemoteOperationResult result = refreshOperation.execute(provider
 .getClient());
 if (!result.isSuccess()) {
-throw new RuntimeException(result.getLogMessage(),
-result.getException());
+throw 
provider.buildRuntimeExceptionForResultCode(result.getCode());
 }
 for (Object obj : result.getData()) {
 RemoteFile child = (RemoteFile) obj;
@@ -104,7 +103,10 @@ public class OwnCloudFile implements IFile {
 File downFolder = provider.getCacheDir();
 DownloadRemoteFileOperation operation = new 
DownloadRemoteFileOperation(
 file.getRemotePath(), downFolder.getAbsolutePath());
-operation.execute(provider.getClient());
+RemoteOperationResult result = operation.execute(provider.getClient());
+if (!result.isSuccess()) {
+throw 
provider.buildRuntimeExceptionForResultCode(result.getCode());
+}
 return new File(downFolder.getAbsolutePath() + file.getRemotePath());
 }
 
diff --git 
a/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
 
b/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
index 827c0af..66e4633 100644
--- 
a/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
+++ 
b/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
@@ -18,6 +18,7 @@ import com.owncloud.android.lib.common.OwnCloudClient;
 import com.owncloud.android.lib.common.OwnCloudClientFactory;
 import com.owncloud.android.lib.common.OwnCloudCredentialsFactory;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import 
com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.lib.resources.files.FileUtils;
 import com.owncloud.android.lib.resources.files.ReadRemoteFileOperation;
 import com.owncloud.android.lib.resources.files.RemoteFile;
@@ -78,8 +79,7 @@ public class OwnCloudProvider implements IDocumentProvider,
 uri.getPath());
 RemoteOperationResult result = refreshOperation.execute(client);
 if (!result.isSuccess()) {
-throw new RuntimeException(result.getLogMessage(),
-result.getException());
+throw buildRuntimeExceptionForResultCode(result.getCode());
 }
 if (result.getData().size()  0) {
 return new OwnCloudFile(this, (RemoteFile) 
result.getData().get(0));
@@ -113,6 +113,29 @@ public class OwnCloudProvider implements IDocumentProvider,
 }
 
 /**
+ * Build the proper RuntimeException for some error result.
+ *
+ * @param code Result code got from some RemoteOperationResult.
+ * @return exception with the proper 

[Libreoffice-commits] core.git: android/source

2015-06-10 Thread Jacobo Aragunde Pérez
 android/source/AndroidManifest.xml.in  
|1 
 android/source/res/values/strings.xml  
|1 
 android/source/src/java/org/libreoffice/storage/DocumentProviderFactory.java   
|   10 
 android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java 
|  113 ++
 android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java 
|   76 ++
 5 files changed, 199 insertions(+), 2 deletions(-)

New commits:
commit 69773f54bbac08953f0fbce16eecea0816e04338
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Wed Jan 21 13:05:41 2015 +

Android: initial implementation of ownCloud provider.

This implementation can connect to a local server and browser its
contents, but cannot download and open the documents yet.

TODO:

* Download and open documents.
* UI to configure server, user and password.
* Implement filtering to show only the documents of the desired type.
* Improve error handling.

Change-Id: I54a2e2e1d3e8ec8d824d75639e176ca452551f3e
Reviewed-on: https://gerrit.libreoffice.org/16191
Reviewed-by: Jacobo Aragunde Pérez jaragu...@igalia.com
Tested-by: Jacobo Aragunde Pérez jaragu...@igalia.com

diff --git a/android/source/AndroidManifest.xml.in 
b/android/source/AndroidManifest.xml.in
index 9364ea8..06b8089 100644
--- a/android/source/AndroidManifest.xml.in
+++ b/android/source/AndroidManifest.xml.in
@@ -9,6 +9,7 @@
 uses-feature android:glEsVersion=0x0002 android:required=true /
 uses-sdk android:minSdkVersion=14 android:targetSdkVersion=21/
 uses-permission android:name=android.permission.WRITE_EXTERNAL_STORAGE/
+uses-permission android:name=android.permission.INTERNET /
 
 application
 @ANDROID_DEBUGGABLE@
diff --git a/android/source/res/values/strings.xml 
b/android/source/res/values/strings.xml
index e43c5a5..d978413 100644
--- a/android/source/res/values/strings.xml
+++ b/android/source/res/values/strings.xml
@@ -47,6 +47,7 @@
 !-- Document provider names --
 string name=local_documentsLocal documents/string
 string name=local_file_systemLocal file system/string
+string name=owncloudownCloud/string
 
 !-- Edit action names --
 string name=action_boldBold/string
diff --git 
a/android/source/src/java/org/libreoffice/storage/DocumentProviderFactory.java 
b/android/source/src/java/org/libreoffice/storage/DocumentProviderFactory.java
index 9aa1973..3d462e6 100644
--- 
a/android/source/src/java/org/libreoffice/storage/DocumentProviderFactory.java
+++ 
b/android/source/src/java/org/libreoffice/storage/DocumentProviderFactory.java
@@ -11,6 +11,7 @@ package org.libreoffice.storage;
 
 import org.libreoffice.storage.local.LocalDocumentsDirectoryProvider;
 import org.libreoffice.storage.local.LocalDocumentsProvider;
+import org.libreoffice.storage.owncloud.OwnCloudProvider;
 
 import android.content.Context;
 
@@ -30,8 +31,7 @@ public final class DocumentProviderFactory {
  */
 private static DocumentProviderFactory instance = null;
 
-private IDocumentProvider[] providers = {
-new LocalDocumentsDirectoryProvider(), new 
LocalDocumentsProvider() };
+private IDocumentProvider[] providers;
 
 private String[] providerNames;
 
@@ -52,6 +52,12 @@ public final class DocumentProviderFactory {
 instance = new DocumentProviderFactory();
 
 // initialize document providers list
+instance.providers = new IDocumentProvider[3];
+instance.providers[0] = new LocalDocumentsDirectoryProvider();
+instance.providers[1] = new LocalDocumentsProvider();
+instance.providers[2] = new OwnCloudProvider(context);
+
+// initialize document provider names list
 instance.providerNames = new String[instance.providers.length];
 for (int i = 0; i  instance.providers.length; i++) {
 instance.providerNames[i] = context.getString(instance
diff --git 
a/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java 
b/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
new file mode 100644
index 000..8e6d6cf
--- /dev/null
+++ b/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
@@ -0,0 +1,113 @@
+package org.libreoffice.storage.owncloud;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.libreoffice.storage.IFile;
+
+import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import com.owncloud.android.lib.resources.files.ReadRemoteFolderOperation;
+import com.owncloud.android.lib.resources.files.RemoteFile;
+
+/**
+ * Implementation of IFile for ownCloud servers.
+ */
+public class OwnCloudFile implements IFile {
+
+private OwnCloudProvider provider;
+  

[Libreoffice-commits] core.git: Branch 'feature/owncloud-provider-for-android' - 8 commits - android/experimental configure.ac download.lst external/Module_external.mk external/owncloud-android-lib Ma

2015-06-03 Thread Jacobo Aragunde Pérez
Rebased ref, commits from common ancestor:
commit b31d175eb982a8c95e89d051e723cb843af2d1a0
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Tue Feb 10 16:17:12 2015 +

Android: improve error handling in ownCloud provider.

This provider now throws exceptions with properly internationalized
messages to be shown to the user.

Change-Id: I0464bffe14cab24d50180cb5e2e62ce746bcba74

diff --git a/android/experimental/LOAndroid3/res/values/strings.xml 
b/android/experimental/LOAndroid3/res/values/strings.xml
index 336b19b..135e52d 100644
--- a/android/experimental/LOAndroid3/res/values/strings.xml
+++ b/android/experimental/LOAndroid3/res/values/strings.xml
@@ -36,6 +36,10 @@
 string name=local_file_systemLocal file system/string
 string name=owncloudownCloud/string
 
+string name=owncloud_wrong_connectionCannot connect to ownCloud 
server. Check your configuration./string
+string name=owncloud_unauthorizedCannot log into ownCloud server. 
Check your configuration./string
+string name=owncloud_unspecified_errorUnspecified error connecting to 
ownCloud server. Check your configuration and/or try later./string
+
 !-- Document provider settings --
 string name=storage_provider_settingsStorage provider settings/string
 string name=owncloud_settingsownCloud settings/string
diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
index a8d1a06..ce10ab6 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
@@ -69,8 +69,7 @@ public class OwnCloudFile implements IFile {
 RemoteOperationResult result = refreshOperation.execute(provider
 .getClient());
 if (!result.isSuccess()) {
-throw new RuntimeException(result.getLogMessage(),
-result.getException());
+throw 
provider.buildRuntimeExceptionForResultCode(result.getCode());
 }
 for (Object obj : result.getData()) {
 RemoteFile child = (RemoteFile) obj;
@@ -104,7 +103,10 @@ public class OwnCloudFile implements IFile {
 File downFolder = provider.getCacheDir();
 DownloadRemoteFileOperation operation = new 
DownloadRemoteFileOperation(
 file.getRemotePath(), downFolder.getAbsolutePath());
-operation.execute(provider.getClient());
+RemoteOperationResult result = operation.execute(provider.getClient());
+if (!result.isSuccess()) {
+throw 
provider.buildRuntimeExceptionForResultCode(result.getCode());
+}
 return new File(downFolder.getAbsolutePath() + file.getRemotePath());
 }
 
diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
index 827c0af..66e4633 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
@@ -18,6 +18,7 @@ import com.owncloud.android.lib.common.OwnCloudClient;
 import com.owncloud.android.lib.common.OwnCloudClientFactory;
 import com.owncloud.android.lib.common.OwnCloudCredentialsFactory;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import 
com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.lib.resources.files.FileUtils;
 import com.owncloud.android.lib.resources.files.ReadRemoteFileOperation;
 import com.owncloud.android.lib.resources.files.RemoteFile;
@@ -78,8 +79,7 @@ public class OwnCloudProvider implements IDocumentProvider,
 uri.getPath());
 RemoteOperationResult result = refreshOperation.execute(client);
 if (!result.isSuccess()) {
-throw new RuntimeException(result.getLogMessage(),
-result.getException());
+throw buildRuntimeExceptionForResultCode(result.getCode());
 }
 if (result.getData().size()  0) {
 return new OwnCloudFile(this, (RemoteFile) 
result.getData().get(0));
@@ -113,6 +113,29 @@ public class OwnCloudProvider implements IDocumentProvider,
 }
 
 /**
+ * Build the proper RuntimeException for some error result.
+ *
+ * @param code Result code got from some RemoteOperationResult.
+ * @return exception with the proper internationalized error message.
+ */
+protected RuntimeException buildRuntimeExceptionForResultCode(ResultCode 
code) {
+int errorMessage;
+switch (code) {
+case WRONG_CONNECTION:  // 

Re: Resignation from the ESC

2015-05-25 Thread Jacobo Aragunde Pérez
Hi Markus,

I just want to thank your great contributions to LibreOffice. It's been
a pleasure to meet you and spend time at conferences and hackfests.

I wish you good luck in your future projects!

-- 
Jacobo Aragunde
Software Engineer at Igalia


El 25/05/15 a las 12:02, Markus Mohrhard escribió:
 Hey,
 
 so I hereby resign from the ESC effective immediately.
 
 I would like to announce as well that I will finish my current projects
 (this includes of course mentoring my GSoC students, the OpenGL text
 work based on glyphy and some smaller items) and after that return my
 commit rights. I enjoyed working with many great people but I believe
 that the project is developing in the wrong direction at the moment and
 that I should spend my free time in a better way.
 
 Regards,
 Markus
 
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: Error building LO - strlen was not declared in this scope on fresh Ubuntu 15.04 install

2015-05-22 Thread Jacobo Aragunde Pérez
Dunno if I'm arriving too late ;) Anyway:

El 21/05/15 a las 05:49, Matteo Campanelli escribió:
 Hi there,
 after
  several minutes of compilation I got the following error(s). Any ideas?
 [Manual dirty solutions like insert the related #include macros did not
 work]

Since you mention that adding the proper #include did not work and this
is a fresh Ubuntu install, I wonder if the package providing string.h is
missing. Check the presence of libc6-dev.

 
 // beginning error message from make
 [SOMEPATH]/include/rtl/ustring.hxx:188:27: error: ‘strlen’ was not
 declared in this scope
 In file included from [SOMEPATH]/include/xmlreader/pad.hxx:27:0,
  from [SOMEPATH]/include/xmlreader/xmlreader.hxx:35,
  from [SOMEPATH]/include/vcl/builder.hxx:19,
  from [SOMEPATH]/include/vcl/dialog.hxx:25,
  from [SOMEPATH]/editeng/source/editeng/editdbg.cxx:22:
 [SOMEPATH]/include/rtl/strbuf.hxx: In instantiation of ‘typename
 rtl::internal::ConstCharArrayDetectorT, rtl::OStringBuffer::Type
 rtl::OStringBuffer::append(T) [with T = const char [12]; typename
 rtl::internal::ConstCharArrayDetectorT, rtl::OStringBuffer::Type =
 rtl::OStringBuffer]’:
 [SOMEPATH]/editeng/source/editeng/editdbg.cxx:70:41:   required from here
 [SOMEPATH]/include/rtl/strbuf.hxx:477:27: error: ‘strlen’ was not
 declared in this scope
  assert( strlen( literal ) == internal::ConstCharArrayDetector
 T ::size - 1 );
 
 // end errors
 

Best,
-- 
Jacobo Aragunde
Software Engineer at Igalia
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


[Libreoffice-commits] dictionaries.git: es/description.xml es/dictionaries.xcu es/es_ANY.aff es/es_ANY.dic es/package-description.txt es/README_es_ANY.txt es/README_th_es_ANY.txt

2015-04-13 Thread Jacobo Aragunde Pérez
 es/README_es_ANY.txt   |9 +
 es/README_th_es_ANY.txt|8 -
 es/description.xml |   13 +-
 es/dictionaries.xcu|6 -
 es/es_ANY.aff  |   24 +++-
 es/es_ANY.dic  |  267 -
 es/package-description.txt |2 
 7 files changed, 216 insertions(+), 113 deletions(-)

New commits:
commit cbf6d67ea480b68c40697e56efda4cd07e2a4e18
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Mon Apr 13 14:13:47 2015 +0200

Updated Spanish dictionary pack to 0.8

Versión 0.8:
- Muchos términos nuevos correspondientes al bug 682 en Forja.rediris.es.
- Migrado el proyecto a GitHub (https://github.com/sbosio/rla-es).

Change-Id: I1ba78af2a28a18a9c2531ae40b24c49c7911ed30
Reviewed-on: https://gerrit.libreoffice.org/15285
Reviewed-by: Adolfo Jayme Barrientos fit...@ubuntu.com
Tested-by: Adolfo Jayme Barrientos fit...@ubuntu.com

diff --git a/es/README_es_ANY.txt b/es/README_es_ANY.txt
index dd04d40..83b0611 100644
--- a/es/README_es_ANY.txt
+++ b/es/README_es_ANY.txt
@@ -6,7 +6,7 @@
   **  VERSIÓN GENÉRICA PARA TODAS LAS LOCALIZACIONES
**
   
 
-   Versión 0.7
+   Versión 0.8
 
 SUMARIO
 
@@ -44,6 +44,11 @@ Encontrará copias de las licencias adjuntas en este mismo 
paquete.
 
 3. INSTALACIÓN
 
+   NOTA: en el resto del documento, cada aparición de OpenOffice.org puede
+entenderse referida también a LibreOffice. No obstante, tenga en cuenta que
+la primera versión de LibreOffice es compatible con OpenOffice.org 3.x, por
+lo que las menciones a OpenOffice.org 1.x y 2.x no son aplicables a 
LibreOffice.
+
En OpenOffice.org versión 3.x y superior, utilice el administrador de
 extensiones, seleccionando para instalar directamente el fichero con
 extensión .oxt.
@@ -58,7 +63,7 @@ a) Copie el fichero de afijos y la lista de palabras en la 
carpeta de
 manera que esté disponible para todos los usuarios, copiando los ficheros al
 directorio de diccionarios de la suite. Este directorio depende de la
 plataforma de instalación. Podrá ubicarlo si ingresa en el ítem Opciones
-del menú Herramientas. Despliegue la primer lista, etiquetada OpenOffice.org
+del menú Herramientas. Despliegue la primera lista, etiquetada 
OpenOffice.org
 y seleccione el ítem Rutas. La carpeta donde debe copiar los ficheros se
 denomina ooo, y la encontrará bajo el directorio que figura en la lista de
 rutas con el tipo Lingüística.
diff --git a/es/README_th_es_ANY.txt b/es/README_th_es_ANY.txt
index e75dc81..797574a 100644
--- a/es/README_th_es_ANY.txt
+++ b/es/README_th_es_ANY.txt
@@ -5,11 +5,11 @@ Homepage: http://openthes-es.berlios.de
 
 Requisitos: ==
 
- OpenOffice.org 3.0 o superior 
+ OpenOffice.org 3.0 o superior
 
 
 Nota: 
-
+
 * Se asume que OOo está bien instalado.
 * El diccionario de sinónimos y separación silábica es el mismo para 
Windows como para Linux.
 
@@ -168,7 +168,7 @@ such a program is covered only if its contents constitute a 
work based
 on the Library (independent of the use of the Library in a tool for
 writing it).  Whether that is true depends on what the Library does
 and what the program that uses the Library does.
-  
+
   1. You may copy and distribute verbatim copies of the Library's
 complete source code as you receive it, in any medium, provided that
 you conspicuously and appropriately publish on each copy an
@@ -521,4 +521,4 @@ necessary.  Here is a sample; alter the names:
   signature of Ty Coon, 1 April 1990
   Ty Coon, President of Vice
 
-That's all there is to it! 
\ No newline at end of file
+That's all there is to it!
diff --git a/es/description.xml b/es/description.xml
index 32d8e7d..77211d4 100644
--- a/es/description.xml
+++ b/es/description.xml
@@ -1,16 +1,21 @@
 ?xml version=1.0 encoding=UTF-8?
 description xmlns=http://openoffice.org/extensions/description/2006; 
xmlns:d=http://openoffice.org/extensions/description/2006;  
xmlns:xlink=http://www.w3.org/1999/xlink;
-version value=0.7 /
+
+version value=0.8 /
 identifier value=spanish.es_ANY.dicts.from.rla-es /
+
 display-name
-name lang=en-USSpanish spelling dictionary, hyphenation rules, and 
thesaurus/name
+name lang=esEspañol (España y América Latina): Ortografía, 
separación y sinónimos/name
 /display-name
+
 platform value=all /
+
 dependencies
 OpenOffice.org-minimal-version value=3.0 d:name=OpenOffice.org 
3.0 /
 /dependencies
+
 publisher
-name xlink:href=https://forja.rediris.es/projects/rla-es/; 
lang=esrla-es/name
+name xlink:href=https://github.com/sbosio/rla-es; 
lang=esrla-es/name
 /publisher
-/description

[Libreoffice-commits] core.git: dictionaries

2015-04-13 Thread Jacobo Aragunde Pérez
 dictionaries |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit e7ca29d0b2eaf40dc32b53196282350cc75ed3a0
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Mon Apr 13 14:13:47 2015 +0200

Updated core
Project: dictionaries  cbf6d67ea480b68c40697e56efda4cd07e2a4e18

Updated Spanish dictionary pack to 0.8

Versión 0.8:
- Muchos términos nuevos correspondientes al bug 682 en Forja.rediris.es.
- Migrado el proyecto a GitHub (https://github.com/sbosio/rla-es).

Change-Id: I1ba78af2a28a18a9c2531ae40b24c49c7911ed30
Reviewed-on: https://gerrit.libreoffice.org/15285
Reviewed-by: Adolfo Jayme Barrientos fit...@ubuntu.com
Tested-by: Adolfo Jayme Barrientos fit...@ubuntu.com

diff --git a/dictionaries b/dictionaries
index 7991db3..cbf6d67 16
--- a/dictionaries
+++ b/dictionaries
@@ -1 +1 @@
-Subproject commit 7991db3dd76ae9fe15faadbd25efb9bceed44e63
+Subproject commit cbf6d67ea480b68c40697e56efda4cd07e2a4e18
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


Re: New version of Spanish dictionaries (0.8)

2015-04-13 Thread Jacobo Aragunde Pérez
Hello Ricardo,

El 11/04/15 a las 19:57, Ricardo Palomares Martínez escribió:
 Hi,
 
 After a long time since version 0.7, we have finally put it together a
 new version of Spanish spell checking and thesaurus dictionaries (we
 have migrated the project from its old home,
 https://forja.rediris.es/projects/rla-es/ , to GitHub):
 
 https://github.com/sbosio/rla-es/releases/tag/v0.8
 

Thanks a lot for your work :)

 LibreOffice is using es_ANY edition. I have to admit that I don't
 understand very well the process of updating the dictionary through
 Gerrit outlined here:
 
 https://wiki.documentfoundation.org/Development/Dictionaries#Adding.2FUpdating_bundled_Dictionaries
 
 Will it be enough with just this announcement here? :-)
 

You would have to clone the dictionaries repository, overwrite the
Spanish dictionary there with the new version, and push the changes. I
can do it for you this time :)

Best,
-- 
Jacobo Aragunde
Software Engineer at Igalia
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


[Libreoffice-commits] core.git: sfx2/inc sfx2/source

2015-04-13 Thread Jacobo Aragunde Pérez
 sfx2/inc/guisaveas.hxx   |3 ++-
 sfx2/source/dialog/alienwarn.cxx |   13 +++--
 sfx2/source/doc/guisaveas.cxx|8 +---
 sfx2/source/inc/alienwarn.hxx|3 ++-
 4 files changed, 20 insertions(+), 7 deletions(-)

New commits:
commit 5c308ad7696f3873c0747afef1ea143047e4eafb
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Fri Apr 10 18:52:33 2015 +0200

tdf#90478: Hide explanation on ODF when default format is alien

When saving a file that is not in ODF format (the default format), there
is a dialog asking if should keep the original format or rather use ODF.

But the default format can be changed to a different one than ODF, and
the dialog will let users choose between saving in the default format
or the one they chose in the save as dialog.

In this case, the explanation about ODF shown in the dialog is
pointless, so this commit hides it.

Change-Id: I91cf95d35b70cb46e7667025a4a649b390205f0b
Reviewed-on: https://gerrit.libreoffice.org/15234
Tested-by: Jenkins c...@libreoffice.org
Reviewed-by: Jacobo Aragunde Pérez jaragu...@igalia.com

diff --git a/sfx2/inc/guisaveas.hxx b/sfx2/inc/guisaveas.hxx
index 19bfb51..914094b 100644
--- a/sfx2/inc/guisaveas.hxx
+++ b/sfx2/inc/guisaveas.hxx
@@ -81,7 +81,8 @@ public:
 const OUString aOldUIName,
 const OUString aDefUIName,
 const OUString aDefExtension,
-bool bCanProceedFurther );
+bool bCanProceedFurther,
+bool rDefaultIsAlien );
 
 static vcl::Window* GetModelWindow( const 
::com::sun::star::uno::Reference ::com::sun::star::frame::XModel  xModel );
 
diff --git a/sfx2/source/dialog/alienwarn.cxx b/sfx2/source/dialog/alienwarn.cxx
index e6c8234..09f59c1 100644
--- a/sfx2/source/dialog/alienwarn.cxx
+++ b/sfx2/source/dialog/alienwarn.cxx
@@ -25,7 +25,8 @@
 #include vcl/msgbox.hxx
 #include alienwarn.hxx
 
-SfxAlienWarningDialog::SfxAlienWarningDialog(vcl::Window* pParent, const 
OUString _rFormatName, const OUString _rDefaultExtension)
+SfxAlienWarningDialog::SfxAlienWarningDialog(vcl::Window* pParent, const 
OUString _rFormatName,
+ const OUString 
_rDefaultExtension, bool rDefaultIsAlien)
 : MessageDialog(pParent, AlienWarnDialog, sfx/ui/alienwarndialog.ui)
 {
 get(m_pWarningOnBox, ask);
@@ -36,7 +37,7 @@ SfxAlienWarningDialog::SfxAlienWarningDialog(vcl::Window* 
pParent, const OUStrin
 get(m_pKeepCurrentBtn, save);
 get(m_pUseDefaultFormatBtn, cancel);
 
-OUString aExtension = _rDefaultExtension.toAsciiUpperCase();
+OUString aExtension = ODF;
 
 // replace formatname (text)
 OUString sInfoText = get_primary_text();
@@ -48,6 +49,14 @@ SfxAlienWarningDialog::SfxAlienWarningDialog(vcl::Window* 
pParent, const OUStrin
 sInfoText = sInfoText.replaceAll( %FORMATNAME, _rFormatName );
 m_pKeepCurrentBtn-SetText( sInfoText );
 
+// hide ODF explanation if default format is alien
+// and set the proper extension in the button
+if( rDefaultIsAlien )
+{
+set_secondary_text(OUString());
+aExtension = _rDefaultExtension.toAsciiUpperCase();
+}
+
 // replace defaultextension (button)
 sInfoText = m_pUseDefaultFormatBtn-GetText();
 sInfoText = sInfoText.replaceAll( %DEFAULTEXTENSION, aExtension );
diff --git a/sfx2/source/doc/guisaveas.cxx b/sfx2/source/doc/guisaveas.cxx
index 1251942..3dc833c 100644
--- a/sfx2/source/doc/guisaveas.cxx
+++ b/sfx2/source/doc/guisaveas.cxx
@@ -833,7 +833,8 @@ sal_Int8 ModelData_Impl::CheckFilter( const OUString 
aFilterName )
 return STATUS_SAVEAS;
 }
 }
-if ( !SfxStoringHelper::WarnUnacceptableFormat( GetModel(), 
aUIName, aDefUIName, aDefExtension, true ) )
+if ( !SfxStoringHelper::WarnUnacceptableFormat( GetModel(), 
aUIName, aDefUIName, aDefExtension,
+true, (bool)( 
nDefFiltFlags  SfxFilterFlags::ALIEN ) ) )
 return STATUS_SAVEAS_STANDARDNAME;
 }
 }
@@ -1875,13 +1876,14 @@ bool SfxStoringHelper::WarnUnacceptableFormat( const 
uno::Reference frame::XMod
 const OUString aOldUIName,
 const OUString 
/*aDefUIName*/,
 const OUString 
aDefExtension,
-bool 
/*bCanProceedFurther*/ )
+bool 
/*bCanProceedFurther*/,
+bool bDefIsAlien )
 {
 if ( !SvtSaveOptions().IsWarnAlienFormat() )
 return true;
 
 vcl::Window* 

[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - sw/source

2015-03-10 Thread Jacobo Aragunde Pérez
 sw/source/core/access/accpara.cxx |2 ++
 1 file changed, 2 insertions(+)

New commits:
commit ac1d20096f31899db10f86742e422f8e960223d5
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Fri Mar 6 16:58:57 2015 +0100

tdf#84102: Expose duplicated level accessible attribute.

There is no standard for this so some ATs will expect level and
others heading-level; we will expose both.

Change-Id: Ia935f7efdea11dc9be66fd9a54e1df0432c74662
(cherry picked from commit e697d9694a62b2943fa19b0fcd19e9b3354f6ad7)
Reviewed-on: https://gerrit.libreoffice.org/14808
Tested-by: Christian Lohmaier lohmaier+libreoff...@googlemail.com
Reviewed-by: Christian Lohmaier lohmaier+libreoff...@googlemail.com

diff --git a/sw/source/core/access/accpara.cxx 
b/sw/source/core/access/accpara.cxx
index 2a0a67a..7f4652c 100644
--- a/sw/source/core/access/accpara.cxx
+++ b/sw/source/core/access/accpara.cxx
@@ -3905,6 +3905,8 @@ uno::Any SAL_CALL 
SwAccessibleParagraph::getExtendedAttributes()
 strHeading += OUString::number(nHeadingLevel, 10);
 strHeading += ;;
 
+strHeading += strHeading.copy(8); // tdf#84102: expose the same attribute 
with the name level
+
 Ret = strHeading;
 
 return Ret;
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/unx

2015-03-09 Thread Jacobo Aragunde Pérez
 vcl/unx/gtk/a11y/atktextattributes.cxx |   31 +++
 vcl/unx/gtk/a11y/atktextattributes.hxx |5 +
 vcl/unx/gtk/a11y/atkwrapper.cxx|   30 ++
 3 files changed, 66 insertions(+)

New commits:
commit 89446eb5ae51b2004fb86f7af5be58754ece8fb3
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Tue Feb 3 16:48:01 2015 +0100

tdf#84102: Expose XAccessibleExtendedAttributes through ATK

Those attributes contain a lot of interesting properties, among them
the heading level which fixes this bug.

Change-Id: I634ef404123cb1b2831563b9b186db4b7e9e7d8b
(cherry picked from commit 1e6515e64cb4a40071e09d5df000a94f96311ea1)
Reviewed-on: https://gerrit.libreoffice.org/14807
Reviewed-by: Caolán McNamara caol...@redhat.com
Tested-by: Caolán McNamara caol...@redhat.com

diff --git a/vcl/unx/gtk/a11y/atktextattributes.cxx 
b/vcl/unx/gtk/a11y/atktextattributes.cxx
index fe2f0d5..bc286d0 100644
--- a/vcl/unx/gtk/a11y/atktextattributes.cxx
+++ b/vcl/unx/gtk/a11y/atktextattributes.cxx
@@ -1211,6 +1211,37 @@ attribute_set_new_from_property_values(
 return attribute_set;
 }
 
+AtkAttributeSet*
+attribute_set_new_from_extended_attributes(
+const css::uno::Reference 
css::accessibility::XAccessibleExtendedAttributes  rExtendedAttributes )
+{
+AtkAttributeSet *pSet = NULL;
+
+// extended attributes is a string of colon-separated pairs of property 
and value,
+// with pairs separated by semicolons. Example: 
heading-level:2;weight:bold;
+uno::Any anyVal = rExtendedAttributes-getExtendedAttributes();
+OUString sExtendedAttrs;
+anyVal = sExtendedAttrs;
+sal_Int32 nIndex = 0;
+do
+{
+OUString sProperty = sExtendedAttrs.getToken( 0, ';', nIndex );
+
+sal_Int32 nColonPos = 0;
+OString sPropertyName = OUStringToOString( sProperty.getToken( 0, ':', 
nColonPos ),
+   RTL_TEXTENCODING_UTF8 );
+OString sPropertyValue = OUStringToOString( sProperty.getToken( 0, 
':', nColonPos ),
+RTL_TEXTENCODING_UTF8 );
+
+pSet = attribute_set_prepend( pSet,
+  atk_text_attribute_register( 
sPropertyName.getStr() ),
+  g_strdup_printf( sPropertyValue.getStr() 
) );
+}
+while ( nIndex = 0  nIndex  sExtendedAttrs.getLength() );
+
+return pSet;
+}
+
 AtkAttributeSet* attribute_set_prepend_misspelled( AtkAttributeSet* 
attribute_set )
 {
 if( ATK_TEXT_ATTR_INVALID == atk_text_attribute_misspelled )
diff --git a/vcl/unx/gtk/a11y/atktextattributes.hxx 
b/vcl/unx/gtk/a11y/atktextattributes.hxx
index 11bcffe..cc78e1a 100644
--- a/vcl/unx/gtk/a11y/atktextattributes.hxx
+++ b/vcl/unx/gtk/a11y/atktextattributes.hxx
@@ -22,6 +22,7 @@
 
 #include com/sun/star/uno/Sequence.hxx
 #include com/sun/star/beans/PropertyValue.hpp
+#include com/sun/star/accessibility/XAccessibleExtendedAttributes.hpp
 
 #include atk/atk.h
 
@@ -31,6 +32,10 @@ attribute_set_new_from_property_values(
 bool run_attributes_only,
 AtkText *text);
 
+AtkAttributeSet*
+attribute_set_new_from_extended_attributes(
+const css::uno::Reference 
css::accessibility::XAccessibleExtendedAttributes  rExtendedAttributes );
+
 bool
 attribute_set_map_to_property_values(
 AtkAttributeSet* attribute_set,
diff --git a/vcl/unx/gtk/a11y/atkwrapper.cxx b/vcl/unx/gtk/a11y/atkwrapper.cxx
index 688ce62..f19c7e8 100644
--- a/vcl/unx/gtk/a11y/atkwrapper.cxx
+++ b/vcl/unx/gtk/a11y/atkwrapper.cxx
@@ -38,6 +38,7 @@
 #include com/sun/star/accessibility/XAccessibleRelationSet.hpp
 #include com/sun/star/accessibility/XAccessibleTable.hpp
 #include com/sun/star/accessibility/XAccessibleEditableText.hpp
+#include com/sun/star/accessibility/XAccessibleExtendedAttributes.hpp
 #include com/sun/star/accessibility/XAccessibleImage.hpp
 #include com/sun/star/accessibility/XAccessibleHyperlink.hpp
 #include com/sun/star/accessibility/XAccessibleHypertext.hpp
@@ -62,6 +63,7 @@
 #include atkwrapper.hxx
 #include atkregistry.hxx
 #include atklistener.hxx
+#include atktextattributes.hxx
 
 #ifdef ENABLE_TRACING
 #include stdio.h
@@ -395,6 +397,33 @@ wrapper_get_description( AtkObject *atk_obj )
 
 /*/
 
+static AtkAttributeSet *
+wrapper_get_attributes( AtkObject *atk_obj )
+{
+AtkObjectWrapper *obj = ATK_OBJECT_WRAPPER( atk_obj );
+AtkAttributeSet *pSet = NULL;
+
+if( obj-mpContext )
+{
+uno::Reference accessibility::XAccessibleContext  xContext( 
obj-mpContext );
+try
+{
+uno::Reference accessibility::XAccessibleExtendedAttributes  
xExtendedAttrs( xContext,
+   
uno::UNO_QUERY );
+if( xExtendedAttrs.is() )
+

[Libreoffice-commits] core.git: sw/source

2015-03-09 Thread Jacobo Aragunde Pérez
 sw/source/core/access/accpara.cxx |2 ++
 1 file changed, 2 insertions(+)

New commits:
commit e697d9694a62b2943fa19b0fcd19e9b3354f6ad7
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Fri Mar 6 16:58:57 2015 +0100

tdf#84102: Expose duplicated level accessible attribute.

There is no standard for this so some ATs will expect level and
others heading-level; we will expose both.

Change-Id: Ia935f7efdea11dc9be66fd9a54e1df0432c74662

diff --git a/sw/source/core/access/accpara.cxx 
b/sw/source/core/access/accpara.cxx
index e2b2829..5fdbacc 100644
--- a/sw/source/core/access/accpara.cxx
+++ b/sw/source/core/access/accpara.cxx
@@ -3877,6 +3877,8 @@ uno::Any SAL_CALL 
SwAccessibleParagraph::getExtendedAttributes()
 strHeading += OUString::number(nHeadingLevel, 10);
 strHeading += ;;
 
+strHeading += strHeading.copy(8); // tdf#84102: expose the same attribute 
with the name level
+
 Ret = strHeading;
 
 return Ret;
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Branch 'feature/owncloud-provider-for-android' - 27 commits - android/experimental chart2/source configure.ac dbaccess/source download.lst external/Module_external.mk e

2015-02-13 Thread Jacobo Aragunde Pérez
Rebased ref, commits from common ancestor:
commit 3e72c3e65cc54a59c322956fe014d3a3bac15a27
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Tue Feb 10 16:17:12 2015 +

Android: improve error handling in ownCloud provider.

This provider now throws exceptions with properly internationalized
messages to be shown to the user.

Change-Id: I0464bffe14cab24d50180cb5e2e62ce746bcba74

diff --git a/android/experimental/LOAndroid3/res/values/strings.xml 
b/android/experimental/LOAndroid3/res/values/strings.xml
index 336b19b..135e52d 100644
--- a/android/experimental/LOAndroid3/res/values/strings.xml
+++ b/android/experimental/LOAndroid3/res/values/strings.xml
@@ -36,6 +36,10 @@
 string name=local_file_systemLocal file system/string
 string name=owncloudownCloud/string
 
+string name=owncloud_wrong_connectionCannot connect to ownCloud 
server. Check your configuration./string
+string name=owncloud_unauthorizedCannot log into ownCloud server. 
Check your configuration./string
+string name=owncloud_unspecified_errorUnspecified error connecting to 
ownCloud server. Check your configuration and/or try later./string
+
 !-- Document provider settings --
 string name=storage_provider_settingsStorage provider settings/string
 string name=owncloud_settingsownCloud settings/string
diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
index a8d1a06..ce10ab6 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
@@ -69,8 +69,7 @@ public class OwnCloudFile implements IFile {
 RemoteOperationResult result = refreshOperation.execute(provider
 .getClient());
 if (!result.isSuccess()) {
-throw new RuntimeException(result.getLogMessage(),
-result.getException());
+throw 
provider.buildRuntimeExceptionForResultCode(result.getCode());
 }
 for (Object obj : result.getData()) {
 RemoteFile child = (RemoteFile) obj;
@@ -104,7 +103,10 @@ public class OwnCloudFile implements IFile {
 File downFolder = provider.getCacheDir();
 DownloadRemoteFileOperation operation = new 
DownloadRemoteFileOperation(
 file.getRemotePath(), downFolder.getAbsolutePath());
-operation.execute(provider.getClient());
+RemoteOperationResult result = operation.execute(provider.getClient());
+if (!result.isSuccess()) {
+throw 
provider.buildRuntimeExceptionForResultCode(result.getCode());
+}
 return new File(downFolder.getAbsolutePath() + file.getRemotePath());
 }
 
diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
index 827c0af..66e4633 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
@@ -18,6 +18,7 @@ import com.owncloud.android.lib.common.OwnCloudClient;
 import com.owncloud.android.lib.common.OwnCloudClientFactory;
 import com.owncloud.android.lib.common.OwnCloudCredentialsFactory;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import 
com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.lib.resources.files.FileUtils;
 import com.owncloud.android.lib.resources.files.ReadRemoteFileOperation;
 import com.owncloud.android.lib.resources.files.RemoteFile;
@@ -78,8 +79,7 @@ public class OwnCloudProvider implements IDocumentProvider,
 uri.getPath());
 RemoteOperationResult result = refreshOperation.execute(client);
 if (!result.isSuccess()) {
-throw new RuntimeException(result.getLogMessage(),
-result.getException());
+throw buildRuntimeExceptionForResultCode(result.getCode());
 }
 if (result.getData().size()  0) {
 return new OwnCloudFile(this, (RemoteFile) 
result.getData().get(0));
@@ -113,6 +113,29 @@ public class OwnCloudProvider implements IDocumentProvider,
 }
 
 /**
+ * Build the proper RuntimeException for some error result.
+ *
+ * @param code Result code got from some RemoteOperationResult.
+ * @return exception with the proper internationalized error message.
+ */
+protected RuntimeException buildRuntimeExceptionForResultCode(ResultCode 
code) {
+int errorMessage;
+switch (code) {
+case WRONG_CONNECTION:  // 

[Libreoffice-commits] core.git: Branch 'feature/owncloud-provider-for-android' - 113 commits - android/experimental basctl/source chart2/Library_chartcore.mk chart2/source comphelper/source configmgr/

2015-02-12 Thread Jacobo Aragunde Pérez
Rebased ref, commits from common ancestor:
commit e78ab7f9cbe6963708cc636e38946a20fce25858
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Tue Feb 10 16:17:12 2015 +

Android: improve error handling in ownCloud provider.

This provider now throws exceptions with properly internationalized
messages to be shown to the user.

Change-Id: I0464bffe14cab24d50180cb5e2e62ce746bcba74

diff --git a/android/experimental/LOAndroid3/res/values/strings.xml 
b/android/experimental/LOAndroid3/res/values/strings.xml
index 336b19b..135e52d 100644
--- a/android/experimental/LOAndroid3/res/values/strings.xml
+++ b/android/experimental/LOAndroid3/res/values/strings.xml
@@ -36,6 +36,10 @@
 string name=local_file_systemLocal file system/string
 string name=owncloudownCloud/string
 
+string name=owncloud_wrong_connectionCannot connect to ownCloud 
server. Check your configuration./string
+string name=owncloud_unauthorizedCannot log into ownCloud server. 
Check your configuration./string
+string name=owncloud_unspecified_errorUnspecified error connecting to 
ownCloud server. Check your configuration and/or try later./string
+
 !-- Document provider settings --
 string name=storage_provider_settingsStorage provider settings/string
 string name=owncloud_settingsownCloud settings/string
diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
index a8d1a06..ce10ab6 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
@@ -69,8 +69,7 @@ public class OwnCloudFile implements IFile {
 RemoteOperationResult result = refreshOperation.execute(provider
 .getClient());
 if (!result.isSuccess()) {
-throw new RuntimeException(result.getLogMessage(),
-result.getException());
+throw 
provider.buildRuntimeExceptionForResultCode(result.getCode());
 }
 for (Object obj : result.getData()) {
 RemoteFile child = (RemoteFile) obj;
@@ -104,7 +103,10 @@ public class OwnCloudFile implements IFile {
 File downFolder = provider.getCacheDir();
 DownloadRemoteFileOperation operation = new 
DownloadRemoteFileOperation(
 file.getRemotePath(), downFolder.getAbsolutePath());
-operation.execute(provider.getClient());
+RemoteOperationResult result = operation.execute(provider.getClient());
+if (!result.isSuccess()) {
+throw 
provider.buildRuntimeExceptionForResultCode(result.getCode());
+}
 return new File(downFolder.getAbsolutePath() + file.getRemotePath());
 }
 
diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
index 827c0af..66e4633 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
@@ -18,6 +18,7 @@ import com.owncloud.android.lib.common.OwnCloudClient;
 import com.owncloud.android.lib.common.OwnCloudClientFactory;
 import com.owncloud.android.lib.common.OwnCloudCredentialsFactory;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import 
com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.lib.resources.files.FileUtils;
 import com.owncloud.android.lib.resources.files.ReadRemoteFileOperation;
 import com.owncloud.android.lib.resources.files.RemoteFile;
@@ -78,8 +79,7 @@ public class OwnCloudProvider implements IDocumentProvider,
 uri.getPath());
 RemoteOperationResult result = refreshOperation.execute(client);
 if (!result.isSuccess()) {
-throw new RuntimeException(result.getLogMessage(),
-result.getException());
+throw buildRuntimeExceptionForResultCode(result.getCode());
 }
 if (result.getData().size()  0) {
 return new OwnCloudFile(this, (RemoteFile) 
result.getData().get(0));
@@ -113,6 +113,29 @@ public class OwnCloudProvider implements IDocumentProvider,
 }
 
 /**
+ * Build the proper RuntimeException for some error result.
+ *
+ * @param code Result code got from some RemoteOperationResult.
+ * @return exception with the proper internationalized error message.
+ */
+protected RuntimeException buildRuntimeExceptionForResultCode(ResultCode 
code) {
+int errorMessage;
+switch (code) {
+case WRONG_CONNECTION:  // 

[Libreoffice-commits] core.git: 2 commits - android/experimental

2015-02-12 Thread Jacobo Aragunde Pérez
 
android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IDocumentProvider.java
 |2 
 android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IFile.java
 |3 
 
android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
  |  116 --
 3 files changed, 98 insertions(+), 23 deletions(-)

New commits:
commit 0f808374af3c71f45b60af3e4040c8e5f12955ac
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Tue Feb 10 18:46:54 2015 +0100

Android: get the file to share in a different thread.

Share feature for cloud files will probably not work properly as it
is, but with this patch we prevent a crash at least.

Change-Id: I95176e9e855a37adf1d3c46edceb0dc6067d9884

diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
index 065887a..9435c092 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
@@ -360,15 +360,42 @@ public class LibreOfficeUIActivity extends LOAbout 
implements ActionBar.OnNaviga
 }
 
 private void share(int position) {
-File file = filePaths.get(position).getDocument();
-Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
-Uri uri = Uri.fromFile(file);
-sharingIntent.setType(FileUtilities.getMimeType(file.getName()));
-sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM, uri);
-sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
-file.getName());
-startActivity(Intent.createChooser(sharingIntent,
-getString(R.string.share_via)));
+
+new AsyncTaskIFile, Void, File() {
+@Override
+protected File doInBackground(IFile... document) {
+// this operation may imply network access and must be run in
+// a different thread
+try {
+return document[0].getDocument();
+} catch (final RuntimeException e) {
+final Activity activity = LibreOfficeUIActivity.this;
+activity.runOnUiThread(new Runnable() {
+@Override
+public void run() {
+Toast.makeText(activity, e.getMessage(),
+Toast.LENGTH_SHORT).show();
+}
+});
+Log.e(tag, e.getMessage(), e.getCause());
+return null;
+}
+}
+
+@Override
+protected void onPostExecute(File file) {
+if (file != null) {
+Intent sharingIntent = new 
Intent(android.content.Intent.ACTION_SEND);
+Uri uri = Uri.fromFile(file);
+
sharingIntent.setType(FileUtilities.getMimeType(file.getName()));
+
sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM, uri);
+
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
+file.getName());
+startActivity(Intent.createChooser(sharingIntent,
+getString(R.string.share_via)));
+}
+}
+}.execute(filePaths.get(position));
 }
 
 @Override
commit 9e8fa856918e018f8bde4067fdbdbb37e2eaa288
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Tue Feb 10 16:17:12 2015 +

Android: improve error handling for document providers.

Now some operations in document providers may throw a RuntimeException
in case of error. The main activity is ready to catch them and show an
error message.

Change-Id: Iad7249dbdc06b2a0890d5435ad65284b728e9707

diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IDocumentProvider.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IDocumentProvider.java
index 191a143..bbfdecd 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IDocumentProvider.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IDocumentProvider.java
@@ -21,6 +21,7 @@ public interface IDocumentProvider {
  * Provides the content root element for the Document Provider.
  *
  * @return Content root element.
+ * @throws RuntimeException in case of error.
  */
 IFile getRootDirectory();
 
@@ -31,6 +32,7 @@ public interface IDocumentProvider {
  *URI pointing to some content object that has been previously
  *retrieved with IFile.getUri().
  * @return IFile object pointing to the content represented by uri.
+ * @throws RuntimeException 

[Libreoffice-commits] core.git: Branch 'feature/owncloud-provider-for-android' - android/experimental

2015-02-10 Thread Jacobo Aragunde Pérez
 android/experimental/LOAndroid3/res/values/strings.xml 
 |4 
 
android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IDocumentProvider.java
 |2 
 android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IFile.java
 |3 
 
android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
 |8 -
 
android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
 |   27 +++
 
android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
  |   71 --
 6 files changed, 96 insertions(+), 19 deletions(-)

New commits:
commit 706d2d9873b2ec3c48b49e2d0781b9a21bf58e8d
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Tue Feb 10 16:17:12 2015 +

Android: improve error handling for document providers.

Now some operations in document providers may throw a RuntimeException
in case of error. The main activity is ready to catch them and show an
error message.

This patch implements error management for ownCloud provider.

Change-Id: Iad7249dbdc06b2a0890d5435ad65284b728e9707

diff --git a/android/experimental/LOAndroid3/res/values/strings.xml 
b/android/experimental/LOAndroid3/res/values/strings.xml
index 336b19b..135e52d 100644
--- a/android/experimental/LOAndroid3/res/values/strings.xml
+++ b/android/experimental/LOAndroid3/res/values/strings.xml
@@ -36,6 +36,10 @@
 string name=local_file_systemLocal file system/string
 string name=owncloudownCloud/string
 
+string name=owncloud_wrong_connectionCannot connect to ownCloud 
server. Check your configuration./string
+string name=owncloud_unauthorizedCannot log into ownCloud server. 
Check your configuration./string
+string name=owncloud_unspecified_errorUnspecified error connecting to 
ownCloud server. Check your configuration and/or try later./string
+
 !-- Document provider settings --
 string name=storage_provider_settingsStorage provider settings/string
 string name=owncloud_settingsownCloud settings/string
diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IDocumentProvider.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IDocumentProvider.java
index 191a143..bbfdecd 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IDocumentProvider.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IDocumentProvider.java
@@ -21,6 +21,7 @@ public interface IDocumentProvider {
  * Provides the content root element for the Document Provider.
  *
  * @return Content root element.
+ * @throws RuntimeException in case of error.
  */
 IFile getRootDirectory();
 
@@ -31,6 +32,7 @@ public interface IDocumentProvider {
  *URI pointing to some content object that has been previously
  *retrieved with IFile.getUri().
  * @return IFile object pointing to the content represented by uri.
+ * @throws RuntimeException in case of error.
  */
 IFile createFromUri(URI uri);
 
diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IFile.java 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IFile.java
index 5b71c09..8effd0f 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IFile.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IFile.java
@@ -71,6 +71,7 @@ public interface IFile {
  *
  * @return list of files contained by this directory, or an empty list if
  * this is not a directory.
+ * @throws RuntimeException in case of error.
  */
 ListIFile listFiles();
 
@@ -82,6 +83,7 @@ public interface IFile {
  *the filter to match names against.
  * @return filtered list of files contained by this directory, or an empty
  * list if this is not a directory.
+ * @throws RuntimeException in case of error.
  */
 ListIFile listFiles(FileFilter filter);
 
@@ -97,6 +99,7 @@ public interface IFile {
  * for a directory is not defined.
  *
  * @return local file containing the document wrapped by this object.
+ * @throws RuntimeException in case of error.
  */
 File getDocument();
 }
diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
index a8d1a06..ce10ab6 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java
@@ -69,8 +69,7 @@ public class OwnCloudFile implements IFile {
 RemoteOperationResult result = refreshOperation.execute(provider
 

[Libreoffice-commits] core.git: 4 commits - android/experimental

2015-02-10 Thread Jacobo Aragunde Pérez
 
android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
 |  150 ++
 1 file changed, 103 insertions(+), 47 deletions(-)

New commits:
commit cc9d29ff7b781b5f1392e13bb9a21bc05229da8a
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Tue Jan 27 11:55:02 2015 +

Android: run open(IFile) in a different thread.

Change-Id: I3a7023dba7621f9bd066edb9c0894df48313b117

diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
index 8c93b41..25870c0 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
@@ -272,12 +272,24 @@ public class LibreOfficeUIActivity extends LOAbout 
implements ActionBar.OnNaviga
 }
 
 public void open(IFile document) {
-File file = document.getDocument();
-Intent i = new Intent(Intent.ACTION_VIEW, Uri.fromFile(file));
-String packageName = getApplicationContext().getPackageName();
-ComponentName componentName = new ComponentName(packageName, 
LibreOfficeMainActivity.class.getName());
-i.setComponent(componentName);
-startActivity(i);
+new AsyncTaskIFile, Void, File() {
+@Override
+protected File doInBackground(IFile... document) {
+// this operation may imply network access and must be run in
+// a different thread
+return document[0].getDocument();
+}
+
+@Override
+protected void onPostExecute(File file) {
+Intent i = new Intent(Intent.ACTION_VIEW, Uri.fromFile(file));
+String packageName = getApplicationContext().getPackageName();
+ComponentName componentName = new ComponentName(packageName,
+LibreOfficeMainActivity.class.getName());
+i.setComponent(componentName);
+startActivity(i);
+}
+}.execute(document);
 }
 
 private void open(int position) {
commit 4810f108c4d7c2e4ff79fd5cecbe60900f68068c
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Wed Jan 21 10:59:40 2015 +

Android: run openParentDirectory() in a different thread.

The Document Provider framework will implement access to network
services in the future, and network operations must be run in separate
threads.

Change-Id: Ifcba8f28cc4dbffaf2946c12749aa38d0eb11923

diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
index 5606b1c..8c93b41 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
@@ -289,6 +289,22 @@ public class LibreOfficeUIActivity extends LOAbout 
implements ActionBar.OnNaviga
 }
 }
 
+private void openParentDirectory() {
+new AsyncTaskVoid, Void, IFile() {
+@Override
+protected IFile doInBackground(Void... dir) {
+// this operation may imply network access and must be run in
+// a different thread
+return currentDirectory.getParent();
+}
+
+@Override
+protected void onPostExecute(IFile result) {
+openDirectory(result);
+}
+}.execute();
+}
+
 private void share(int position) {
 File file = filePaths.get(position).getDocument();
 Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
@@ -323,7 +339,7 @@ public class LibreOfficeUIActivity extends LOAbout 
implements ActionBar.OnNaviga
 switch (item.getItemId()) {
 case android.R.id.home:
 if( !currentDirectory.equals( homeDirectory ) ){
-openDirectory(currentDirectory.getParent());
+openParentDirectory();
 }
 break;
 case R.id.menu_view_toggle:
commit bc8cb4e3b2a1fc4b84bf366945dd72e9ebeb00ce
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Tue Jan 20 19:01:28 2015 +0100

Android: run openDirectory() in a different thread.

The Document Provider framework will implement access to network
services in the future, and network operations must be run in separate
threads.

diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
index efd4105..5606b1c 100644
--- 

[Libreoffice-commits] core.git: Changes to 'feature/owncloud-provider-for-android'

2015-02-10 Thread Jacobo Aragunde Pérez
New branch 'feature/owncloud-provider-for-android' available with the following 
commits:
commit 23df7188b4bb6c093158a103e26d124cab0ee668
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Mon Feb 9 20:20:11 2015 +0100

Android: document providers listen to changes in preferences.

With this patch, document providers are able to listen to changes in
their preferences and update their internal state accordingly. Now
ownCloud provider can see its server updated without restarting the
application.

commit d783fd5d3073f012801a0a85263fe991e7bc
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Mon Feb 9 14:10:29 2015 +0100

Android: add menu entry for document provider settings

commit 40189a95e501bd12ef1975eb9511a0d1ad69df66
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Mon Feb 9 14:04:59 2015 +0100

Android: setup ownCloud provider with user-defined settings

commit c902969705047c8a61aac98ab6df18643af82c3e
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Mon Feb 9 12:37:46 2015 +0100

Android: settings activity for document providers

Creates an activity to manage the settings of any document provider
that needs them, and populated it with the settings required by the
ownCloud implementation.

The settings screen is not yet plugged to the document browser UI but
can be launched with this command:

  adb shell am start -a android.intent.action.MAIN \
  -n org.libreoffice/.storage.DocumentProviderSettingsActivity

commit e1f9d7322b726a3bbf0be8e7bd47700b861e0f3f
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Tue Jan 27 12:44:42 2015 +

Android: download documents from ownCloud.

Documents are downloaded to the private cache directory of the app,
and opened from there. That directory is cleared and created again
every time the application starts up.

Change-Id: I5c05c8ae750b6ced3b419c67d84063e8ee3d84aa

commit 701c67d016b66863d4d72b703a0f213705e11a6b
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Wed Jan 21 13:05:41 2015 +

Android: initial implementation of ownCloud provider.

This implementation can connect to a local server and browser its
contents, but cannot download and open the documents yet.

TODO:

* Download and open documents.
* UI to configure server, user and password.
* Implement filtering to show only the documents of the desired type.
* Improve error handling.

Change-Id: I54a2e2e1d3e8ec8d824d75639e176ca452551f3e

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Branch 'feature/owncloud-provider-for-android' - 33 commits - android/experimental basctl/source chart2/source config_host/config_global.h.in configure.ac external/libo

2015-02-10 Thread Jacobo Aragunde Pérez
Rebased ref, commits from common ancestor:
commit a9a125191af334655fdff4a9f7c9a4ad843a5ed1
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Tue Feb 10 18:46:54 2015 +0100

Android: get the file to share in a different thread.

Share feature for cloud files will probably not work properly as it
is, but with this patch we prevent a crash at least.

Change-Id: I95176e9e855a37adf1d3c46edceb0dc6067d9884

diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
index 0e684a3..2a4b69f 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
@@ -363,15 +363,42 @@ public class LibreOfficeUIActivity extends LOAbout 
implements ActionBar.OnNaviga
 }
 
 private void share(int position) {
-File file = filePaths.get(position).getDocument();
-Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
-Uri uri = Uri.fromFile(file);
-sharingIntent.setType(FileUtilities.getMimeType(file.getName()));
-sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM, uri);
-sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
-file.getName());
-startActivity(Intent.createChooser(sharingIntent,
-getString(R.string.share_via)));
+
+new AsyncTaskIFile, Void, File() {
+@Override
+protected File doInBackground(IFile... document) {
+// this operation may imply network access and must be run in
+// a different thread
+try {
+return document[0].getDocument();
+} catch (final RuntimeException e) {
+final Activity activity = LibreOfficeUIActivity.this;
+activity.runOnUiThread(new Runnable() {
+@Override
+public void run() {
+Toast.makeText(activity, e.getMessage(),
+Toast.LENGTH_SHORT).show();
+}
+});
+Log.e(tag, e.getMessage(), e.getCause());
+return null;
+}
+}
+
+@Override
+protected void onPostExecute(File file) {
+if (file != null) {
+Intent sharingIntent = new 
Intent(android.content.Intent.ACTION_SEND);
+Uri uri = Uri.fromFile(file);
+
sharingIntent.setType(FileUtilities.getMimeType(file.getName()));
+
sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM, uri);
+
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
+file.getName());
+startActivity(Intent.createChooser(sharingIntent,
+getString(R.string.share_via)));
+}
+}
+}.execute(filePaths.get(position));
 }
 
 @Override
commit 5be8ec8a1f9b7385122177915d72489abb6d84f1
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Tue Feb 10 16:17:12 2015 +

Android: improve error handling for document providers.

Now some operations in document providers may throw a RuntimeException
in case of error. The main activity is ready to catch them and show an
error message.

This patch implements error management for ownCloud provider.

Change-Id: Iad7249dbdc06b2a0890d5435ad65284b728e9707

diff --git a/android/experimental/LOAndroid3/res/values/strings.xml 
b/android/experimental/LOAndroid3/res/values/strings.xml
index 336b19b..135e52d 100644
--- a/android/experimental/LOAndroid3/res/values/strings.xml
+++ b/android/experimental/LOAndroid3/res/values/strings.xml
@@ -36,6 +36,10 @@
 string name=local_file_systemLocal file system/string
 string name=owncloudownCloud/string
 
+string name=owncloud_wrong_connectionCannot connect to ownCloud 
server. Check your configuration./string
+string name=owncloud_unauthorizedCannot log into ownCloud server. 
Check your configuration./string
+string name=owncloud_unspecified_errorUnspecified error connecting to 
ownCloud server. Check your configuration and/or try later./string
+
 !-- Document provider settings --
 string name=storage_provider_settingsStorage provider settings/string
 string name=owncloud_settingsownCloud settings/string
diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IDocumentProvider.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IDocumentProvider.java
index 191a143..bbfdecd 100644
--- 

[Libreoffice-commits] core.git: android/experimental

2015-02-10 Thread Jacobo Aragunde Pérez
 android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java 
|   30 ++
 
android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
 |5 -
 2 files changed, 31 insertions(+), 4 deletions(-)

New commits:
commit 5654e0f6afd93b371954456523460397564b4602
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Tue Feb 10 18:42:40 2015 +0100

Android: fix share feature for .odp/.odt files

Added our own map of MIME types because we cannot rely on Android's.

Change-Id: I11d4b639f42d30aa8adb0ea092797fb30b4fc8b9

diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java
index f658d92..118eded 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FileUtilities.java
@@ -18,6 +18,7 @@ import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Comparator;
 import android.util.Log;
+import android.webkit.MimeTypeMap;
 
 public class FileUtilities {
 static final int ALL = -1;
@@ -42,6 +43,7 @@ public class FileUtilities {
 static final int SORT_SMALLEST = 5;
 
 private static final MapString,Integer mExtnMap = new 
HashMapString,Integer();
+private static final MapString, String extensionToMimeTypeMap = new 
HashMapString, String();
 static {
 // Please keep this in sync with AndroidManifest.xml
 
@@ -97,6 +99,22 @@ public class FileUtilities {
 mExtnMap.put(.svm,  DRAWING);
 mExtnMap.put(.wmf,  DRAWING);
 mExtnMap.put(.svg,  DRAWING);
+
+// Some basic MIME types
+// Android's MimeTypeMap lacks some types that we need
+extensionToMimeTypeMap.put(odb, 
application/vnd.oasis.opendocument.database);
+extensionToMimeTypeMap.put(odf, 
application/vnd.oasis.opendocument.formula);
+extensionToMimeTypeMap.put(odg, 
application/vnd.oasis.opendocument.graphics);
+extensionToMimeTypeMap.put(otg, 
application/vnd.oasis.opendocument.graphics-template);
+extensionToMimeTypeMap.put(odi, 
application/vnd.oasis.opendocument.image);
+extensionToMimeTypeMap.put(odp, 
application/vnd.oasis.opendocument.presentation);
+extensionToMimeTypeMap.put(otp, 
application/vnd.oasis.opendocument.presentation-template);
+extensionToMimeTypeMap.put(ods, 
application/vnd.oasis.opendocument.spreadsheet);
+extensionToMimeTypeMap.put(ots, 
application/vnd.oasis.opendocument.spreadsheet-template);
+extensionToMimeTypeMap.put(odt, 
application/vnd.oasis.opendocument.text);
+extensionToMimeTypeMap.put(odm, 
application/vnd.oasis.opendocument.text-master);
+extensionToMimeTypeMap.put(ott, 
application/vnd.oasis.opendocument.text-template);
+extensionToMimeTypeMap.put(oth, 
application/vnd.oasis.opendocument.text-web);
 }
 
 private static final String getExtension(String filename)
@@ -124,6 +142,18 @@ public class FileUtilities {
 return type;
 }
 
+static String getMimeType(String filename)
+{
+String extension = MimeTypeMap.getFileExtensionFromUrl(filename);
+String mime = extensionToMimeTypeMap.get(extension);
+if(mime == null) {
+//fallback to Android's MimeTypeMap
+mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(
+extension);
+}
+return mime;
+}
+
 // Filter by mode, and/or in future by filename/wildcard
 static private boolean doAccept(String filename, int byMode, String 
byFilename)
 {
diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
index 25870c0..24cff82 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
@@ -54,7 +54,6 @@ import android.view.View;
 import android.view.View.OnLongClickListener;
 import android.view.ViewGroup;
 import android.view.View.OnClickListener;
-import android.webkit.MimeTypeMap;
 import android.widget.AdapterView;
 import android.widget.AdapterView.AdapterContextMenuInfo;
 import android.widget.AdapterView.OnItemClickListener;
@@ -321,9 +320,7 @@ public class LibreOfficeUIActivity extends LOAbout 
implements ActionBar.OnNaviga
 File file = filePaths.get(position).getDocument();
 Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
 Uri uri = Uri.fromFile(file);
-String extension = MimeTypeMap.getFileExtensionFromUrl(uri.toString());
-sharingIntent.setType(MimeTypeMap.getSingleton()
-.getMimeTypeFromExtension(extension));
+

[Libreoffice-commits] core.git: vcl/unx

2015-02-05 Thread Jacobo Aragunde Pérez
 vcl/unx/gtk/a11y/atktextattributes.cxx |   31 +++
 vcl/unx/gtk/a11y/atktextattributes.hxx |5 +
 vcl/unx/gtk/a11y/atkwrapper.cxx|   30 ++
 3 files changed, 66 insertions(+)

New commits:
commit 1e6515e64cb4a40071e09d5df000a94f96311ea1
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Tue Feb 3 16:48:01 2015 +0100

tdf#84102: Expose XAccessibleExtendedAttributes through ATK

Those attributes contain a lot of interesting properties, among them
the heading level which fixes this bug.

Change-Id: I634ef404123cb1b2831563b9b186db4b7e9e7d8b

diff --git a/vcl/unx/gtk/a11y/atktextattributes.cxx 
b/vcl/unx/gtk/a11y/atktextattributes.cxx
index a7487c0..7855a69 100644
--- a/vcl/unx/gtk/a11y/atktextattributes.cxx
+++ b/vcl/unx/gtk/a11y/atktextattributes.cxx
@@ -1211,6 +1211,37 @@ attribute_set_new_from_property_values(
 return attribute_set;
 }
 
+AtkAttributeSet*
+attribute_set_new_from_extended_attributes(
+const css::uno::Reference 
css::accessibility::XAccessibleExtendedAttributes  rExtendedAttributes )
+{
+AtkAttributeSet *pSet = NULL;
+
+// extended attributes is a string of colon-separated pairs of property 
and value,
+// with pairs separated by semicolons. Example: 
heading-level:2;weight:bold;
+uno::Any anyVal = rExtendedAttributes-getExtendedAttributes();
+OUString sExtendedAttrs;
+anyVal = sExtendedAttrs;
+sal_Int32 nIndex = 0;
+do
+{
+OUString sProperty = sExtendedAttrs.getToken( 0, ';', nIndex );
+
+sal_Int32 nColonPos = 0;
+OString sPropertyName = OUStringToOString( sProperty.getToken( 0, ':', 
nColonPos ),
+   RTL_TEXTENCODING_UTF8 );
+OString sPropertyValue = OUStringToOString( sProperty.getToken( 0, 
':', nColonPos ),
+RTL_TEXTENCODING_UTF8 );
+
+pSet = attribute_set_prepend( pSet,
+  atk_text_attribute_register( 
sPropertyName.getStr() ),
+  g_strdup_printf( sPropertyValue.getStr() 
) );
+}
+while ( nIndex = 0  nIndex  sExtendedAttrs.getLength() );
+
+return pSet;
+}
+
 AtkAttributeSet* attribute_set_prepend_misspelled( AtkAttributeSet* 
attribute_set )
 {
 if( ATK_TEXT_ATTR_INVALID == atk_text_attribute_misspelled )
diff --git a/vcl/unx/gtk/a11y/atktextattributes.hxx 
b/vcl/unx/gtk/a11y/atktextattributes.hxx
index 11bcffe..cc78e1a 100644
--- a/vcl/unx/gtk/a11y/atktextattributes.hxx
+++ b/vcl/unx/gtk/a11y/atktextattributes.hxx
@@ -22,6 +22,7 @@
 
 #include com/sun/star/uno/Sequence.hxx
 #include com/sun/star/beans/PropertyValue.hpp
+#include com/sun/star/accessibility/XAccessibleExtendedAttributes.hpp
 
 #include atk/atk.h
 
@@ -31,6 +32,10 @@ attribute_set_new_from_property_values(
 bool run_attributes_only,
 AtkText *text);
 
+AtkAttributeSet*
+attribute_set_new_from_extended_attributes(
+const css::uno::Reference 
css::accessibility::XAccessibleExtendedAttributes  rExtendedAttributes );
+
 bool
 attribute_set_map_to_property_values(
 AtkAttributeSet* attribute_set,
diff --git a/vcl/unx/gtk/a11y/atkwrapper.cxx b/vcl/unx/gtk/a11y/atkwrapper.cxx
index 6d972ff..80f3478 100644
--- a/vcl/unx/gtk/a11y/atkwrapper.cxx
+++ b/vcl/unx/gtk/a11y/atkwrapper.cxx
@@ -38,6 +38,7 @@
 #include com/sun/star/accessibility/XAccessibleRelationSet.hpp
 #include com/sun/star/accessibility/XAccessibleTable.hpp
 #include com/sun/star/accessibility/XAccessibleEditableText.hpp
+#include com/sun/star/accessibility/XAccessibleExtendedAttributes.hpp
 #include com/sun/star/accessibility/XAccessibleImage.hpp
 #include com/sun/star/accessibility/XAccessibleHyperlink.hpp
 #include com/sun/star/accessibility/XAccessibleHypertext.hpp
@@ -62,6 +63,7 @@
 #include atkwrapper.hxx
 #include atkregistry.hxx
 #include atklistener.hxx
+#include atktextattributes.hxx
 
 #ifdef ENABLE_TRACING
 #include stdio.h
@@ -395,6 +397,33 @@ wrapper_get_description( AtkObject *atk_obj )
 
 /*/
 
+static AtkAttributeSet *
+wrapper_get_attributes( AtkObject *atk_obj )
+{
+AtkObjectWrapper *obj = ATK_OBJECT_WRAPPER( atk_obj );
+AtkAttributeSet *pSet = NULL;
+
+if( obj-mpContext )
+{
+uno::Reference accessibility::XAccessibleContext  xContext( 
obj-mpContext );
+try
+{
+uno::Reference accessibility::XAccessibleExtendedAttributes  
xExtendedAttrs( xContext,
+   
uno::UNO_QUERY );
+if( xExtendedAttrs.is() )
+pSet = attribute_set_new_from_extended_attributes( 
xExtendedAttrs );
+}
+catch(const uno::Exception)
+{
+g_warning( Exception in getAccessibleAttributes() );
+}
+}
+
+return 

[Libreoffice-commits] core.git: android/experimental

2015-02-05 Thread Jacobo Aragunde Pérez
 android/experimental/LOAndroid3/res/layout/file_explorer_folder_icon.xml   
  |   36 --
 
android/experimental/LOAndroid3/src/java/org/libreoffice/ui/GridItemAdapter.java
 |8 --
 2 files changed, 44 deletions(-)

New commits:
commit f3eccc655387b47fb0986558b8835588eee2898d
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Tue Feb 3 18:19:32 2015 +

tdf#87432: normal icons for folders in android doc browser

The code used to draw a black circle and populate it with thumbnails
of the documents inside the folder, but they are always empty because
we are not generating any thumbnails.

Change-Id: Id0b63f7e901525b5a962d12441cda84dfeb59d52

diff --git 
a/android/experimental/LOAndroid3/res/layout/file_explorer_folder_icon.xml 
b/android/experimental/LOAndroid3/res/layout/file_explorer_folder_icon.xml
deleted file mode 100644
index 4271ac4..000
--- a/android/experimental/LOAndroid3/res/layout/file_explorer_folder_icon.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-?xml version=1.0 encoding=utf-8?
-!--
- This file is part of the LibreOffice project.
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
- --
-LinearLayout xmlns:android=http://schemas.android.com/apk/res/android;
-android:layout_width=match_parent
-android:layout_height=match_parent
-android:orientation=vertical 
-
-org.libreoffice.ui.FolderIconView
-android:id=@+id/folder_icon
-android:layout_width=100dp
-android:layout_height=142dp
-android:paddingTop=15dp
-android:paddingBottom=10dp
-android:layout_gravity=center 
-/org.libreoffice.ui.FolderIconView
-
-TextView
-android:id=@+id/grid_item_label
-android:layout_width=wrap_content
-android:layout_height=wrap_content
-android:text=@+id/label
-android:paddingLeft=10dp
-android:paddingRight=10dp
-android:layout_gravity=center
-android:textSize=15dp
-android:textStyle=bold
-android:textColor=@android:color/secondary_text_light
-android:maxLines=2
-/TextView
-
-/LinearLayout
\ No newline at end of file
diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/GridItemAdapter.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/GridItemAdapter.java
index 621ccef..9307851 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/GridItemAdapter.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/GridItemAdapter.java
@@ -101,14 +101,6 @@ public class GridItemAdapter extends BaseAdapter {
 {
 // Default view is a generic folder icon.
 imageView.setImageResource(R.drawable.folder);
-// How should we handle empty folders / folders with no 
thumbnails? - new files
-gridView =  inflater.inflate(R.layout.file_explorer_folder_icon, 
null);
-org.libreoffice.ui.FolderIconView icon =
-
(org.libreoffice.ui.FolderIconView)gridView.findViewById(R.id.folder_icon);
-// icon.setDir( filePaths[position]);
-textView = (TextView) gridView.findViewById(R.id.grid_item_label);
-textView.setText(filePaths.get(position).getName());
-return gridView;
 }
 else
 {
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: 7 commits - android/experimental

2015-01-19 Thread Jacobo Aragunde Pérez
 android/experimental/LOAndroid3/res/layout/file_grid.xml   
 |   19 +
 android/experimental/LOAndroid3/res/layout/file_list.xml   
 |   20 +
 android/experimental/LOAndroid3/res/layout/item_in_drawer.xml  
 |   17 +
 android/experimental/LOAndroid3/res/values/strings.xml 
 |4 
 
android/experimental/LOAndroid3/src/java/org/libreoffice/storage/DocumentProviderFactory.java
   |  100 +
 
android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IDocumentProvider.java
 |   44 
 android/experimental/LOAndroid3/src/java/org/libreoffice/storage/IFile.java
 |  102 +
 
android/experimental/LOAndroid3/src/java/org/libreoffice/storage/local/LocalDocumentsDirectoryProvider.java
 |   40 +++
 
android/experimental/LOAndroid3/src/java/org/libreoffice/storage/local/LocalDocumentsProvider.java
  |   40 +++
 
android/experimental/LOAndroid3/src/java/org/libreoffice/storage/local/LocalFile.java
   |   96 +
 
android/experimental/LOAndroid3/src/java/org/libreoffice/ui/GridItemAdapter.java
|   31 +--
 
android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
  |  103 +++---
 12 files changed, 569 insertions(+), 47 deletions(-)

New commits:
commit 61682ae51129310b62290be77c8349754845aedb
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Wed Jan 14 12:51:56 2015 +

Android: i18n-ized document provider names.

The factory will need access to the Context to be able to transform
the resources into Strings, and the only way to receive it is from
the Activity. Implemented initialize(Context) for that reason.

Change-Id: If6e81a9c4ad73180851e43968ac97aa1e74231e7

diff --git a/android/experimental/LOAndroid3/res/values/strings.xml 
b/android/experimental/LOAndroid3/res/values/strings.xml
index 2d03388..7cd7423 100644
--- a/android/experimental/LOAndroid3/res/values/strings.xml
+++ b/android/experimental/LOAndroid3/res/values/strings.xml
@@ -30,4 +30,8 @@
 string name=shareShare/string
 string name=share_viaShare via/string
 
+!-- Document provider names --
+string name=local_documentsLocal documents/string
+string name=local_file_systemLocal file system/string
+
 /resources
diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/DocumentProviderFactory.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/DocumentProviderFactory.java
index 2ec0dc9..9aa1973 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/DocumentProviderFactory.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/storage/DocumentProviderFactory.java
@@ -12,6 +12,8 @@ package org.libreoffice.storage;
 import org.libreoffice.storage.local.LocalDocumentsDirectoryProvider;
 import org.libreoffice.storage.local.LocalDocumentsProvider;
 
+import android.content.Context;
+
 /**
  * Keeps the instances of the available IDocumentProviders in the system.
  * Instances are maintained in a sorted list and providers have to be
@@ -31,22 +33,39 @@ public final class DocumentProviderFactory {
 private IDocumentProvider[] providers = {
 new LocalDocumentsDirectoryProvider(), new 
LocalDocumentsProvider() };
 
-private String[] providerNames = {
-Local documents, Local file system };
+private String[] providerNames;
 
 private DocumentProviderFactory() {
 // private to prevent external instances of the factory
 }
 
 /**
- * Retrieve the unique instance of the factory.
+ * Initializes the factory with some context. If this method is called for
+ * twice or more times those calls will have no effect.
  *
- * @return the unique factory object.
+ * @param context
+ *Application context for the factory.
  */
-public static DocumentProviderFactory getInstance() {
+public static void initialize(Context context) {
 if (instance == null) {
+// initialize instance
 instance = new DocumentProviderFactory();
+
+// initialize document providers list
+instance.providerNames = new String[instance.providers.length];
+for (int i = 0; i  instance.providers.length; i++) {
+instance.providerNames[i] = context.getString(instance
+.getProvider(i).getNameResource());
+}
 }
+}
+
+/**
+ * Retrieve the unique instance of the factory.
+ *
+ * @return the unique factory object or null if it is not yet initialized.
+ */
+public static DocumentProviderFactory getInstance() {
 return instance;
 }
 

Re: Request for LO development design documents

2015-01-14 Thread Jacobo Aragunde Pérez
El 08/01/15 a las 03:56, Sand escribió:
 Hi there
   I am new here, from China, so sorry for my poor English. I am
 interesting in the LO and maybe I can do something for the LO so I built
 the source code and succeed, but when I got to read such huge code lib,
 I got messed! The total documents I have got from the wiki of
 documentfoundation seems not enough, so can I reqeust for some design
 document of Writer? I'd appreciate it.
 

Hi,

the documentation stored in OpenOffice wiki might also be interesting to
you, specially if you are looking for an overview and basic concepts
which have not changed a lot over time.

Find the developers guide here:
https://wiki.openoffice.org/wiki/Documentation/DevGuide/OpenOffice.org_Developers_Guide

I think you will find the chapters office development and text
documents interesting.

Best,
-- 
Jacobo
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


[Libreoffice-commits] core.git: 2 commits - android/experimental

2015-01-09 Thread Jacobo Aragunde Pérez
 android/experimental/LOAndroid3/res/menu/context_menu.xml  
|7 
 android/experimental/LOAndroid3/res/values/strings.xml 
|3 
 
android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
 |   79 --
 3 files changed, 76 insertions(+), 13 deletions(-)

New commits:
commit 04df164860df64fe0b54f1a13b010101c49d38c7
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Wed Dec 3 19:07:11 2014 +

Android: add share feature in the context menu

Known issues: the mimetype returned for .odp files is null and share
does not work on these files.

Change-Id: I61e752763a6934657c30fff3cefc57ac0144ec71

diff --git a/android/experimental/LOAndroid3/res/menu/context_menu.xml 
b/android/experimental/LOAndroid3/res/menu/context_menu.xml
index 3951971..4382487 100644
--- a/android/experimental/LOAndroid3/res/menu/context_menu.xml
+++ b/android/experimental/LOAndroid3/res/menu/context_menu.xml
@@ -2,4 +2,6 @@
 menu xmlns:android=http://schemas.android.com/apk/res/android; 
 item android:id=@+id/context_menu_open
   android:title=@string/open/
+item android:id=@+id/context_menu_share
+  android:title=@string/share/
 /menu
diff --git a/android/experimental/LOAndroid3/res/values/strings.xml 
b/android/experimental/LOAndroid3/res/values/strings.xml
index bfaa7ab..473616a 100644
--- a/android/experimental/LOAndroid3/res/values/strings.xml
+++ b/android/experimental/LOAndroid3/res/values/strings.xml
@@ -26,5 +26,7 @@
 string name=action_aboutAbout/string
 string name=action_partsParts/string
 string name=openOpen/string
+string name=shareShare/string
+string name=share_viaShare via/string
 
 /resources
diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
index df7d6fa..61f8450 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
@@ -46,6 +46,7 @@ import android.view.View;
 import android.view.View.OnLongClickListener;
 import android.view.ViewGroup;
 import android.view.View.OnClickListener;
+import android.webkit.MimeTypeMap;
 import android.widget.AdapterView;
 import android.widget.AdapterView.AdapterContextMenuInfo;
 import android.widget.AdapterView.OnItemClickListener;
@@ -172,6 +173,9 @@ public class LibreOfficeUIActivity extends LOAbout 
implements ActionBar.OnNaviga
 case R.id.context_menu_open:
 open(info.position);
 return true;
+case R.id.context_menu_share:
+share(info.position);
+return true;
 default:
 return super.onContextItemSelected(item);
 }
@@ -221,6 +225,20 @@ public class LibreOfficeUIActivity extends LOAbout 
implements ActionBar.OnNaviga
 }
 }
 
+private void share(int position) {
+File file = filePaths[position];
+Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
+Uri uri = Uri.fromFile(file);
+String extension = MimeTypeMap.getFileExtensionFromUrl(uri.toString());
+sharingIntent.setType(MimeTypeMap.getSingleton()
+.getMimeTypeFromExtension(extension));
+sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM, uri);
+sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
+file.getName());
+startActivity(Intent.createChooser(sharingIntent,
+getString(R.string.share_via)));
+}
+
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
 MenuInflater inflater = getMenuInflater();
commit 60dd2161bb21a9232a163ce785dd18227e25a335
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Wed Dec 3 17:04:27 2014 +

Android: add context menu in document browser

Change-Id: I234f7ddb99570498f86449cf61ceb72696995b0d

diff --git a/android/experimental/LOAndroid3/res/menu/context_menu.xml 
b/android/experimental/LOAndroid3/res/menu/context_menu.xml
new file mode 100644
index 000..3951971
--- /dev/null
+++ b/android/experimental/LOAndroid3/res/menu/context_menu.xml
@@ -0,0 +1,5 @@
+?xml version=1.0 encoding=utf-8?
+menu xmlns:android=http://schemas.android.com/apk/res/android; 
+item android:id=@+id/context_menu_open
+  android:title=@string/open/
+/menu
diff --git a/android/experimental/LOAndroid3/res/values/strings.xml 
b/android/experimental/LOAndroid3/res/values/strings.xml
index ea505d7..bfaa7ab 100644
--- a/android/experimental/LOAndroid3/res/values/strings.xml
+++ b/android/experimental/LOAndroid3/res/values/strings.xml
@@ -25,5 +25,6 @@
 
 string name=action_aboutAbout/string
 string name=action_partsParts/string
+

[Libreoffice-commits] core.git: android/experimental

2014-12-16 Thread Jacobo Aragunde Pérez
 android/experimental/LOAndroid3/AndroidManifest.xml.in |   10 ++
 1 file changed, 2 insertions(+), 8 deletions(-)

New commits:
commit 6d7f67eadf7cae75ec0ede5596c55b6585d73872
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Wed Oct 15 19:39:29 2014 +0200

android: Show document browser back in the menu

Related with commit c7c2b4b54d8ab81150e9b71433970c2f338ed063.

There is nothing wrong with having several activities; in fact Android
development encourages using one activity per use case. After this
patch we have:

* One menu item that opens LibreOffice document browser. It covers the
  use case open LibreOffice without documents.
* The viewer activity does not have a menu item but it responds to
  open intents triggered by any applications like file explorers,
  including the document browser.

Change-Id: Ie08b96e52d3a6a79aed3354620302705d7689381
Reviewed-on: https://gerrit.libreoffice.org/12108
Reviewed-by: Miklos Vajna vmik...@collabora.co.uk
Tested-by: Miklos Vajna vmik...@collabora.co.uk

diff --git a/android/experimental/LOAndroid3/AndroidManifest.xml.in 
b/android/experimental/LOAndroid3/AndroidManifest.xml.in
index 119046a8..c3a6b31 100644
--- a/android/experimental/LOAndroid3/AndroidManifest.xml.in
+++ b/android/experimental/LOAndroid3/AndroidManifest.xml.in
@@ -17,15 +17,12 @@
 android:label=@string/app_name
 android:hardwareAccelerated=true
 android:theme=@style/AppTheme
+!-- Viewer Activity --
 activity
 android:name=org.libreoffice.LibreOfficeMainActivity
 android:label=@string/app_name
 
android:configChanges=orientation|keyboard|keyboardHidden|screenLayout|uiMode|screenSize|smallestScreenSize
 intent-filter
-action android:name=android.intent.action.MAIN /
-category android:name=android.intent.category.LAUNCHER /
-/intent-filter
-intent-filter
 action android:name=android.intent.action.VIEW /
 action android:name=android.intent.action.EDIT /
 action android:name=android.intent.action.PICK /
@@ -84,17 +81,14 @@
 /intent-filter
 /activity
 !-- Document Browser Activity --
-!-- Disable it here so that we don't present two icons.
- TODO Probably merge the two activities, so that the browser opens 
when LibreOffice is started with no document.
 activity android:name=.ui.LibreOfficeUIActivity
-  android:label=@string/browser_app_name
+  android:label=@string/app_name
   android:theme=@android:style/Theme.Holo
 intent-filter
 action android:name=android.intent.action.MAIN /
 category android:name=android.intent.category.LAUNCHER /
 /intent-filter
 /activity
---
 /application
 
 /manifest
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: android/experimental

2014-12-16 Thread Jacobo Aragunde Pérez
 
android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
 |3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

New commits:
commit 8c68463dae09e123bae9fc5947329cfa1f314ad3
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Fri Nov 28 10:15:48 2014 +

Android: browse documents anywhere in the sdcard

Change-Id: I9e52489e13ed0eaeb5926347168de926cd9178b0
Reviewed-on: https://gerrit.libreoffice.org/13277
Reviewed-by: Miklos Vajna vmik...@collabora.co.uk
Tested-by: Miklos Vajna vmik...@collabora.co.uk

diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
index 02eddb3..a9d17f8 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
@@ -131,8 +131,7 @@ public class LibreOfficeUIActivity extends Activity 
implements ActionBar.OnNavig
 super.onCreate(savedInstanceState);
 Log.d(tag, onCreate - tweaked - meeks !);
 //Set the home - top level - directory.
-homeDirectory  = new 
File(Environment.getExternalStorageDirectory(),LibreOffice);
-homeDirectory.mkdirs();
+homeDirectory  = Environment.getExternalStorageDirectory();
 currentDirectory = homeDirectory;
 //Load default settings
 
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: android/experimental

2014-12-16 Thread Jacobo Aragunde Pérez
 
android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FolderIconView.java 
|4 
 1 file changed, 4 insertions(+)

New commits:
commit c13a1c2e5ce6ea0b78e46f314c1980a4f0c7a2f4
Author: Jacobo Aragunde Pérez jaragu...@igalia.com
Date:   Tue Dec 2 17:34:01 2014 +

Android: prevent NPE due to lack of permissions on a directory

Change-Id: Ia2f4c04ad4c524e8b72870acb0735793624f0916
Reviewed-on: https://gerrit.libreoffice.org/13278
Reviewed-by: Miklos Vajna vmik...@collabora.co.uk
Tested-by: Miklos Vajna vmik...@collabora.co.uk

diff --git 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FolderIconView.java
 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FolderIconView.java
index 5960e5e..723e361 100644
--- 
a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FolderIconView.java
+++ 
b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/FolderIconView.java
@@ -83,6 +83,10 @@ public class FolderIconView extends View{
 if( dir == null )
 return;//TODO
 File[] contents = dir.listFiles();//TODO consider filtering thumbs to 
match grid.
+if( contents == null )
+// dir is not a directory,
+// or user does not have permissions to read it
+return;
 StackBitmap thumbs = new StackBitmap();
 BitmapFactory factory = new BitmapFactory();
 for( File file : contents ){
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


Re: minutes of ESC call ...

2014-12-11 Thread Jacobo Aragunde Pérez
El 11/12/14 a las 17:07, Michael Meeks escribió:
 ...
 + FOSDEM paper submission ... [!] ... deadline tomorrow (Several)
 [ https://penta.fosdem.org/submission/FOSDEM15
   submitted: Thorsten, Michael x2, Matus (not), Michael S, Miklos.
   not yet: Markus, Eike, Bjoern
   unknown: Jacobo, Adam ] 

Submitted too :)


-- 
Jacobo Aragunde
Software Engineer at Igalia
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


[Libreoffice-commits] core.git: Changes to 'refs/changes/36/6036/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/36/6036/2'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/60/10060/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/36/6036/3'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/00/9900/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/68/10068/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/68/10068/2'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/99/9899/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/99/9899/2'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/47/7847/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/00/9900/2'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/60/10060/2'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/73/7573/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/47/7847/2'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/87/7187/2'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/56/10056/3'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/56/10056/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/87/7187/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/88/11488/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/88/11488/2'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/32/6432/2'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/32/6432/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/32/6432/4'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/34/6434/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/32/6432/3'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/51/7551/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/47/7847/3'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/37/6137/3'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/95/9495/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/87/11487/2'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/84/6484/2'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/28/6828/2'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/57/6257/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/37/6137/4'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/34/6434/4'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/37/6137/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/53/7853/2'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/51/7551/2'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/32/6432/5'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/28/6828/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/95/9495/2'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/34/6434/5'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/84/6484/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/53/7853/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/34/6434/3'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/38/6138/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/38/6138/2'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/53/7853/3'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/87/11487/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/33/6433/5'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/33/6433/3'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/33/6433/1'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/66/10066/2'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


[Libreoffice-commits] core.git: Changes to 'refs/changes/57/6257/2'

2014-09-29 Thread Jacobo Aragunde Pérez

___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits


  1   2   3   >