[Libreoffice-commits] core.git: 28 commits - desktop/source drawinglayer/source include/toolkit include/unotools include/vbahelper include/vcl include/xmloff ios/CustomTarget_TiledLibreOffice_app.mk ios/experimental oox/source sal/osl svx/source svx/uiconfig sw/qa sw/source toolkit/source vbahelper/source vcl/inc vcl/osx vcl/source vcl/win xmloff/source

Adolfo Jayme Barrientos fitojb at ubuntu.com
Mon Sep 29 12:25:20 PDT 2014


 desktop/source/app/app.cxx                                                   |    6 
 drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx                   |    4 
 include/toolkit/helper/formpdfexport.hxx                                     |    3 
 include/unotools/componentresmodule.hxx                                      |    2 
 include/vbahelper/vbahelper.hxx                                              |    2 
 include/vbahelper/vbashape.hxx                                               |    4 
 include/vcl/mnemonicengine.hxx                                               |    2 
 include/vcl/quickselectionengine.hxx                                         |    2 
 include/vcl/settings.hxx                                                     |    2 
 include/vcl/threadex.hxx                                                     |    4 
 include/xmloff/XMLShapeStyleContext.hxx                                      |    3 
 ios/CustomTarget_TiledLibreOffice_app.mk                                     |    4 
 ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj |  262 ++-
 oox/source/export/drawingml.cxx                                              |   17 
 oox/source/token/properties.txt                                              |    1 
 oox/source/vml/vmlshape.cxx                                                  |   27 
 sal/osl/unx/security.cxx                                                     |   19 
 svx/source/tbxctrls/SvxColorValueSet.cxx                                     |    4 
 svx/uiconfig/ui/compressgraphicdialog.ui                                     |  698 ++++------
 sw/qa/extras/inc/swmodeltestbase.hxx                                         |   27 
 sw/qa/extras/odfimport/data/fdo81223.odt                                     |binary
 sw/qa/extras/odfimport/odfimport.cxx                                         |   10 
 sw/qa/extras/ooxmlexport/data/bnc884615-mso-position.docx                    |binary
 sw/qa/extras/ooxmlexport/data/rot270-flipv.docx                              |binary
 sw/qa/extras/ooxmlexport/ooxmlexport.cxx                                     |   48 
 sw/qa/extras/ooxmlexport/ooxmlexport2.cxx                                    |   13 
 sw/source/core/doc/DocumentStylePoolManager.cxx                              |    2 
 sw/source/core/unocore/unoframe.cxx                                          |    7 
 sw/source/filter/ww8/docxattributeoutput.cxx                                 |  183 +-
 sw/source/filter/ww8/ww8atr.cxx                                              |   16 
 toolkit/source/helper/formpdfexport.cxx                                      |   85 -
 vbahelper/source/msforms/vbacombobox.hxx                                     |    2 
 vbahelper/source/msforms/vbacontrol.cxx                                      |    4 
 vbahelper/source/msforms/vbacontrol.hxx                                      |    2 
 vbahelper/source/msforms/vbalistbox.hxx                                      |    4 
 vcl/inc/textlayout.hxx                                                       |    2 
 vcl/osx/DataFlavorMapping.hxx                                                |    2 
 vcl/osx/DragSource.cxx                                                       |    2 
 vcl/source/app/settings.cxx                                                  |   11 
 vcl/source/window/dockingarea.cxx                                            |   17 
 vcl/source/window/toolbox.cxx                                                |    9 
 vcl/win/source/app/saltimer.cxx                                              |    2 
 xmloff/source/draw/XMLShapeStyleContext.cxx                                  |   15 
 43 files changed, 899 insertions(+), 630 deletions(-)

New commits:
commit 4c23ff3c18bc89b12ee59d1769037f01cc6ef683
Author: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
Date:   Sun Sep 28 04:20:22 2014 -0500

    Rework the Compress Image dialog
    
    * Switch to an horizontal layout
    * Drop the expander and make file info always visible at the right side
    * Resizing didn’t make sense when the expander was there, still doesn’t
    * Sentence capitalization for radio buttons and check boxes, see HIG
    * Add it a title!
    * Make it modal
    
    Change-Id: I08215b122bd9466c33fdc93e3c007f4aaf47b4e5
    Reviewed-on: https://gerrit.libreoffice.org/11671
    Reviewed-by: Samuel Mehrbrodt <s.mehrbrodt at gmail.com>
    Tested-by: Samuel Mehrbrodt <s.mehrbrodt at gmail.com>

diff --git a/svx/uiconfig/ui/compressgraphicdialog.ui b/svx/uiconfig/ui/compressgraphicdialog.ui
index bcc9fde..c2fd63e 100644
--- a/svx/uiconfig/ui/compressgraphicdialog.ui
+++ b/svx/uiconfig/ui/compressgraphicdialog.ui
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.16.1 -->
+<!-- Generated with glade 3.18.3 -->
 <interface>
   <requires lib="gtk+" version="3.0"/>
   <object class="GtkAdjustment" id="compression-adjustment">
@@ -53,6 +53,9 @@
   <object class="GtkDialog" id="CompressGraphicDialog">
     <property name="can_focus">False</property>
     <property name="border_width">6</property>
+    <property name="title" translatable="yes">Compress Image</property>
+    <property name="resizable">False</property>
+    <property name="modal">True</property>
     <property name="type_hint">dialog</property>
     <child internal-child="vbox">
       <object class="GtkBox" id="dialog-vbox1">
@@ -120,23 +123,345 @@
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="hexpand">True</property>
-            <property name="orientation">vertical</property>
             <property name="spacing">12</property>
             <child>
-              <object class="GtkExpander" id="expander1">
+              <object class="GtkFrame" id="frame2">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="expanded">True</property>
+                <property name="can_focus">False</property>
+                <property name="label_xalign">0</property>
+                <property name="shadow_type">none</property>
+                <child>
+                  <object class="GtkAlignment" id="alignment1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="top_padding">6</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <object class="GtkGrid" id="grid2">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="row_spacing">6</property>
+                        <property name="column_spacing">12</property>
+                        <child>
+                          <object class="GtkRadioButton" id="radio-lossless">
+                            <property name="label" translatable="yes">Lossless compression</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="xalign">0</property>
+                            <property name="active">True</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">2</property>
+                            <property name="width">3</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="checkbox-reduce-resolution">
+                            <property name="label" translatable="yes">Reduce image resolution</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="xalign">0</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">4</property>
+                            <property name="width">3</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label3">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="margin_left">12</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Width:</property>
+                            <property name="use_underline">True</property>
+                            <property name="mnemonic_widget">spin-new-width</property>
+                            <property name="width_chars">15</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">5</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkSpinButton" id="spin-new-width">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="adjustment">width-adjustment</property>
+                            <property name="numeric">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">5</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label4">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="margin_left">12</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Height:</property>
+                            <property name="use_underline">True</property>
+                            <property name="mnemonic_widget">spin-new-height</property>
+                            <property name="width_chars">15</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">6</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkRadioButton" id="radio-jpeg">
+                            <property name="label" translatable="yes">JPEG compression</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="xalign">0</property>
+                            <property name="draw_indicator">True</property>
+                            <property name="group">radio-lossless</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                            <property name="width">3</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label5">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="margin_left">12</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Resolution:</property>
+                            <property name="use_underline">True</property>
+                            <property name="mnemonic_widget">combo-resolution</property>
+                            <property name="width_chars">15</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">7</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkSpinButton" id="spin-new-height">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="adjustment">height-adjustment</property>
+                            <property name="numeric">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">6</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkComboBoxText" id="combo-resolution">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="has_entry">True</property>
+                            <items>
+                              <item>50</item>
+                              <item>75</item>
+                              <item>96</item>
+                              <item>150</item>
+                              <item>200</item>
+                              <item>300</item>
+                              <item>600</item>
+                            </items>
+                            <child internal-child="entry">
+                              <object class="GtkEntry" id="comboboxtext-entry">
+                                <property name="can_focus">False</property>
+                                <property name="invisible_char">•</property>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">7</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label6">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="margin_left">12</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Quality:</property>
+                            <property name="use_underline">True</property>
+                            <property name="mnemonic_widget">spin-quality</property>
+                            <property name="width_chars">15</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label11">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="margin_left">12</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Compression:</property>
+                            <property name="use_underline">True</property>
+                            <property name="mnemonic_widget">spin-compression</property>
+                            <property name="width_chars">15</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">3</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkSpinButton" id="spin-quality">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="invisible_char">•</property>
+                            <property name="adjustment">quality-adjustment</property>
+                            <property name="numeric">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkSpinButton" id="spin-compression">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="invisible_char">•</property>
+                            <property name="adjustment">compression-adjustment</property>
+                            <property name="numeric">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">3</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label12">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="margin_left">12</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Interpolation:</property>
+                            <property name="use_underline">True</property>
+                            <property name="mnemonic_widget">interpolation-method-combo</property>
+                            <property name="width_chars">15</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">8</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkComboBox" id="interpolation-method-combo">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="model">interpolation-method-store</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">8</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label13">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">px</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="top_attach">5</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label14">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">px</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="top_attach">6</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label16">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">DPI</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="top_attach">7</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <placeholder/>
+                        </child>
+                        <child>
+                          <placeholder/>
+                        </child>
+                        <child>
+                          <placeholder/>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="label2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">Compression Options</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkFrame" id="frame1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label_xalign">0</property>
+                <property name="shadow_type">none</property>
                 <child>
                   <object class="GtkAlignment" id="alignment2">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="top_padding">6</property>
-                    <property name="left_padding">18</property>
+                    <property name="left_padding">12</property>
                     <child>
                       <object class="GtkGrid" id="grid1">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="valign">start</property>
                         <property name="row_spacing">6</property>
                         <property name="column_spacing">12</property>
                         <child>
@@ -144,15 +469,13 @@
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="xalign">0</property>
-                            <property name="label" translatable="yes">Original Size:</property>
+                            <property name="label" translatable="yes">Original size:</property>
                             <property name="width_chars">15</property>
                             <property name="single_line_mode">True</property>
                           </object>
                           <packing>
                             <property name="left_attach">0</property>
                             <property name="top_attach">1</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
                           </packing>
                         </child>
                         <child>
@@ -166,8 +489,6 @@
                           <packing>
                             <property name="left_attach">1</property>
                             <property name="top_attach">1</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
                           </packing>
                         </child>
                         <child>
@@ -175,14 +496,12 @@
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="xalign">0</property>
-                            <property name="label" translatable="yes">View Size:</property>
+                            <property name="label" translatable="yes">View size:</property>
                             <property name="width_chars">15</property>
                           </object>
                           <packing>
                             <property name="left_attach">0</property>
                             <property name="top_attach">2</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
                           </packing>
                         </child>
                         <child>
@@ -190,14 +509,12 @@
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="xalign">0</property>
-                            <property name="label" translatable="yes">Image Capacity:</property>
+                            <property name="label" translatable="yes">Image capacity:</property>
                             <property name="width_chars">15</property>
                           </object>
                           <packing>
                             <property name="left_attach">0</property>
                             <property name="top_attach">3</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
                           </packing>
                         </child>
                         <child>
@@ -205,14 +522,12 @@
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="xalign">0</property>
-                            <property name="label" translatable="yes">New Capacity:</property>
+                            <property name="label" translatable="yes">New capacity:</property>
                             <property name="width_chars">15</property>
                           </object>
                           <packing>
                             <property name="left_attach">0</property>
                             <property name="top_attach">4</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
                           </packing>
                         </child>
                         <child>
@@ -226,8 +541,6 @@
                           <packing>
                             <property name="left_attach">1</property>
                             <property name="top_attach">2</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
                           </packing>
                         </child>
                         <child>
@@ -241,8 +554,6 @@
                           <packing>
                             <property name="left_attach">1</property>
                             <property name="top_attach">3</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
                           </packing>
                         </child>
                         <child>
@@ -256,8 +567,6 @@
                           <packing>
                             <property name="left_attach">1</property>
                             <property name="top_attach">4</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
                           </packing>
                         </child>
                         <child>
@@ -271,8 +580,6 @@
                           <packing>
                             <property name="left_attach">1</property>
                             <property name="top_attach">5</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
                           </packing>
                         </child>
                         <child>
@@ -287,8 +594,6 @@
                           <packing>
                             <property name="left_attach">0</property>
                             <property name="top_attach">0</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
                           </packing>
                         </child>
                         <child>
@@ -302,8 +607,6 @@
                           <packing>
                             <property name="left_attach">1</property>
                             <property name="top_attach">0</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
                           </packing>
                         </child>
                         <child>
@@ -318,340 +621,15 @@
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="label" translatable="yes">Image Information</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
                   </object>
                 </child>
               </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">True</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkGrid" id="grid2">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="hexpand">True</property>
-                <property name="row_spacing">6</property>
-                <property name="column_spacing">12</property>
-                <child>
-                  <object class="GtkRadioButton" id="radio-lossless">
-                    <property name="label" translatable="yes">Lossless Compression</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="xalign">0</property>
-                    <property name="active">True</property>
-                    <property name="draw_indicator">True</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">0</property>
-                    <property name="top_attach">2</property>
-                    <property name="width">3</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkCheckButton" id="checkbox-reduce-resolution">
-                    <property name="label" translatable="yes">Reduce Image Resolution</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="xalign">0</property>
-                    <property name="draw_indicator">True</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">0</property>
-                    <property name="top_attach">4</property>
-                    <property name="width">3</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label2">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="margin_left">12</property>
-                    <property name="hexpand">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Width:</property>
-                    <property name="use_underline">True</property>
-                    <property name="mnemonic_widget">spin-new-width</property>
-                    <property name="width_chars">15</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">0</property>
-                    <property name="top_attach">5</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkSpinButton" id="spin-new-width">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="adjustment">width-adjustment</property>
-                    <property name="numeric">True</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="top_attach">5</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label3">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="margin_left">12</property>
-                    <property name="hexpand">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Height:</property>
-                    <property name="use_underline">True</property>
-                    <property name="mnemonic_widget">spin-new-height</property>
-                    <property name="width_chars">15</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">0</property>
-                    <property name="top_attach">6</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkRadioButton" id="radio-jpeg">
-                    <property name="label" translatable="yes">JPEG Compression</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="xalign">0</property>
-                    <property name="draw_indicator">True</property>
-                    <property name="group">radio-lossless</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">0</property>
-                    <property name="top_attach">0</property>
-                    <property name="width">3</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label4">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="margin_left">12</property>
-                    <property name="hexpand">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Resolution:</property>
-                    <property name="use_underline">True</property>
-                    <property name="mnemonic_widget">combo-resolution</property>
-                    <property name="width_chars">15</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">0</property>
-                    <property name="top_attach">7</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkSpinButton" id="spin-new-height">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="adjustment">height-adjustment</property>
-                    <property name="numeric">True</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="top_attach">6</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkComboBoxText" id="combo-resolution">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="has_entry">True</property>
-                    <items>
-                      <item>50</item>
-                      <item>75</item>
-                      <item>96</item>
-                      <item>150</item>
-                      <item>200</item>
-                      <item>300</item>
-                      <item>600</item>
-                    </items>
-                    <child internal-child="entry">
-                      <object class="GtkEntry" id="comboboxtext-entry">
-                        <property name="can_focus">False</property>
-                        <property name="invisible_char">•</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="top_attach">7</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label6">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="margin_left">12</property>
-                    <property name="hexpand">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Quality:</property>
-                    <property name="use_underline">True</property>
-                    <property name="mnemonic_widget">spin-quality</property>
-                    <property name="width_chars">15</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">0</property>
-                    <property name="top_attach">1</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label5">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="margin_left">12</property>
-                    <property name="hexpand">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Compression:</property>
-                    <property name="use_underline">True</property>
-                    <property name="mnemonic_widget">spin-compression</property>
-                    <property name="width_chars">15</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">0</property>
-                    <property name="top_attach">3</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkSpinButton" id="spin-quality">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="invisible_char">•</property>
-                    <property name="adjustment">quality-adjustment</property>
-                    <property name="numeric">True</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="top_attach">1</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkSpinButton" id="spin-compression">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="invisible_char">•</property>
-                    <property name="adjustment">compression-adjustment</property>
-                    <property name="numeric">True</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="top_attach">3</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label11">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="margin_left">12</property>
-                    <property name="hexpand">True</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">Interpolation:</property>
-                    <property name="use_underline">True</property>
-                    <property name="mnemonic_widget">interpolation-method-combo</property>
-                    <property name="width_chars">15</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">0</property>
-                    <property name="top_attach">8</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkComboBox" id="interpolation-method-combo">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="model">interpolation-method-store</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="top_attach">8</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label12">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">px</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="top_attach">5</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label13">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">px</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="top_attach">6</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label14">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="xalign">0</property>
-                    <property name="label" translatable="yes">DPI</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="top_attach">7</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <placeholder/>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
                 <property name="position">1</property>
               </packing>
             </child>
commit 826530854a776717dd1455913474892932d9b0f5
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Sep 29 21:12:57 2014 +0200

    vcl/osx: std::auto_ptr -> std::unique_ptr
    
    Change-Id: If54aaffc6d88569220c4f1747926aae3199946b8

diff --git a/vcl/osx/DataFlavorMapping.hxx b/vcl/osx/DataFlavorMapping.hxx
index 3bd4118..a3cff1c 100644
--- a/vcl/osx/DataFlavorMapping.hxx
+++ b/vcl/osx/DataFlavorMapping.hxx
@@ -52,7 +52,7 @@ public:
   virtual com::sun::star::uno::Any getOOoData() = 0;
 };
 
-typedef std::auto_ptr<DataProvider> DataProviderPtr_t;
+typedef std::unique_ptr<DataProvider> DataProviderPtr_t;
 
 class DataFlavorMapper
 {
diff --git a/vcl/osx/DragSource.cxx b/vcl/osx/DragSource.cxx
index 6435041..0231f12 100644
--- a/vcl/osx/DragSource.cxx
+++ b/vcl/osx/DragSource.cxx
@@ -234,7 +234,7 @@ void SAL_CALL DragSource::startDrag(const DragGestureEvent& trigger,
   m_MouseButton= mMouseEvent.Buttons;
   mXDragSrcListener = listener;
   mXCurrentContext = static_cast<XDragSourceContext*>(new DragSourceContext);
-  auto_ptr<AquaClipboard> clipb(new AquaClipboard(NULL, false));
+  unique_ptr<AquaClipboard> clipb(new AquaClipboard(NULL, false));
   g_XTransferable = transferable;
   clipb->setContents(g_XTransferable, uno::Reference<XClipboardOwner>());
   mDragSourceActions = sourceActions;
commit 9c88837f0d8e2f679d779ebb5128ac6e15f022b9
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Mon Sep 29 20:45:27 2014 +0200

    SwModelTestBase: allow validating only a subset of the test files
    
    Also, as a start, enable export validation for zoom.docx.
    
    Change-Id: I4620fbd516eeb4001770a4d69a89e7831566af92

diff --git a/sw/qa/extras/inc/swmodeltestbase.hxx b/sw/qa/extras/inc/swmodeltestbase.hxx
index e283bc3..2658f12 100644
--- a/sw/qa/extras/inc/swmodeltestbase.hxx
+++ b/sw/qa/extras/inc/swmodeltestbase.hxx
@@ -295,6 +295,14 @@ protected:
         return true;
     }
 
+    /**
+     * Override this function if validation is wanted
+     */
+    virtual bool mustValidate(const char* /*filename*/) const
+    {
+        return false;
+    }
+
 private:
     void dumpLayout()
     {
@@ -574,15 +582,18 @@ protected:
         xComponent->dispose();
         mbExported = true;
         mxComponent = loadFromDesktop(maTempFile.GetURL(), "com.sun.star.text.TextDocument");
-        if(aFilterName == "Office Open XML Text")
+        if (mustValidate(filename))
         {
-            // too many validation errors right now
-            // validate(maTempFile.GetFileName(), test::OOXML);
-        }
-        else if(aFilterName == "writer8")
-        {
-            // still a few validation errors
-            // validate(maTempFile.GetFileName(), test::ODF);
+            if(aFilterName == "Office Open XML Text")
+            {
+                // too many validation errors right now
+                validate(maTempFile.GetFileName(), test::OOXML);
+            }
+            else if(aFilterName == "writer8")
+            {
+                // still a few validation errors
+                validate(maTempFile.GetFileName(), test::ODF);
+            }
         }
 
         if (mpXmlBuffer)
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx
index 78fbb7e..32a63d5 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx
@@ -74,6 +74,19 @@ protected:
         // If the testcase is stored in some other format, it's pointless to test.
         return (OString(filename).endsWith(".docx") && std::find(vBlacklist.begin(), vBlacklist.end(), filename) == vBlacklist.end());
     }
+
+    /**
+     * Validation handling
+     */
+    bool mustValidate(const char* filename) const SAL_OVERRIDE
+    {
+        const char* aWhitelist[] = {
+            "zoom.docx"
+        };
+        std::vector<const char*> vWhitelist(aWhitelist, aWhitelist + SAL_N_ELEMENTS(aWhitelist));
+
+        return std::find(vWhitelist.begin(), vWhitelist.end(), filename) != vWhitelist.end();
+    }
 };
 
 #if !defined(WNT)
commit 2b2246bb164ae58a39843218dcbcc425e4c38803
Author: Julien Nabet <serval2412 at yahoo.fr>
Date:   Mon Sep 29 19:53:59 2014 +0200

    cppcheck: Prefer prefix ++/-- operators for non-primitive types
    
    Change-Id: I01999bc1283024bc4a1c380fd765a64b2da8a16a

diff --git a/svx/source/tbxctrls/SvxColorValueSet.cxx b/svx/source/tbxctrls/SvxColorValueSet.cxx
index cd98b5a..299dc4a 100644
--- a/svx/source/tbxctrls/SvxColorValueSet.cxx
+++ b/svx/source/tbxctrls/SvxColorValueSet.cxx
@@ -91,7 +91,7 @@ void SvxColorValueSet::loadColorVector(const std::vector<Color>& rColorVector, c
     if(rNamePrefix.getLength() != 0)
     {
         for(std::vector<Color>::const_iterator it = rColorVector.begin();
-            it != rColorVector.end(); it++, nStartIndex++)
+            it != rColorVector.end(); ++it, nStartIndex++)
         {
             InsertItem(nStartIndex, *it, rNamePrefix + OUString::number(nStartIndex));
         }
@@ -99,7 +99,7 @@ void SvxColorValueSet::loadColorVector(const std::vector<Color>& rColorVector, c
     else
     {
         for(std::vector<Color>::const_iterator it = rColorVector.begin();
-            it != rColorVector.end(); it++, nStartIndex++)
+            it != rColorVector.end(); ++it, nStartIndex++)
         {
             InsertItem(nStartIndex, *it, "");
         }
commit 0ed0974298992ae871a8fbe79f856cf2588aeec6
Author: Michael Jaumann <meta_dev at yahoo.com>
Date:   Tue Sep 23 12:34:54 2014 +0000

    fdo#59299 Personas for bottom toolbars
    
    Change-Id: If823964bf3bb67563504db61b6c5d557cab89243
    Reviewed-on: https://gerrit.libreoffice.org/11609
    Reviewed-by: Samuel Mehrbrodt <s.mehrbrodt at gmail.com>
    Tested-by: Samuel Mehrbrodt <s.mehrbrodt at gmail.com>

diff --git a/include/vcl/settings.hxx b/include/vcl/settings.hxx
index 10ae6a6..fb16ee3 100644
--- a/include/vcl/settings.hxx
+++ b/include/vcl/settings.hxx
@@ -522,6 +522,8 @@ public:
 
     const BitmapEx                  GetPersonaHeader() const;
 
+    const BitmapEx                  GetPersonaFooter() const;
+
     const boost::optional<Color>&   GetPersonaMenuBarTextColor() const;
 
     // global switch to allow EdgeBlenging; currently possible for ValueSet and ListBox
diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx
index 184c3f1..a4fb97e 100644
--- a/vcl/source/app/settings.cxx
+++ b/vcl/source/app/settings.cxx
@@ -2116,8 +2116,9 @@ static void setupPersonaHeaderFooter( WhichPersona eWhich, OUString& rHeaderFoot
     OUString aPersona( officecfg::Office::Common::Misc::Persona::get( xContext ) );
     OUString aPersonaSettings( officecfg::Office::Common::Misc::PersonaSettings::get( xContext ) );
 
-    // have the settings changed?
-    OUString aOldValue( aPersona + ";" + aPersonaSettings );
+    // have the settings changed? marks if header /footer prepared before
+    //should maybe extended to a flag that marks if header /footer /both are loaded
+    OUString  aOldValue= eWhich==PERSONA_HEADER?OUString(aPersona + ";" + aPersonaSettings+";h" ):OUString(aPersona + ";" + aPersonaSettings+";f" );
     if ( rHeaderFooter == aOldValue )
         return;
 
@@ -2186,6 +2187,12 @@ const BitmapEx StyleSettings::GetPersonaHeader() const
     return mpData->maPersonaHeaderBitmap;
 }
 
+const BitmapEx StyleSettings::GetPersonaFooter() const
+{
+    setupPersonaHeaderFooter( PERSONA_FOOTER, mpData->maPersonaHeaderFooter, mpData->maPersonaFooterBitmap, mpData->maPersonaMenuBarTextColor );
+    return mpData->maPersonaFooterBitmap;
+}
+
 const boost::optional<Color>& StyleSettings::GetPersonaMenuBarTextColor() const
 {
     GetPersonaHeader();
diff --git a/vcl/source/window/dockingarea.cxx b/vcl/source/window/dockingarea.cxx
index bda794b..6d6416d 100644
--- a/vcl/source/window/dockingarea.cxx
+++ b/vcl/source/window/dockingarea.cxx
@@ -46,12 +46,16 @@ DockingAreaWindow::ImplData::~ImplData()
 
 static void ImplInitBackground( DockingAreaWindow* pThis )
 {
-    const BitmapEx& rPersonaBitmap = Application::GetSettings().GetStyleSettings().GetPersonaHeader();
-    if ( !rPersonaBitmap.IsEmpty() && pThis->GetAlign() == WINDOWALIGN_TOP )
+    const StyleSettings rSetting = Application::GetSettings().GetStyleSettings();
+    const BitmapEx& rPersonaBitmap = pThis->GetAlign() == WINDOWALIGN_TOP ? rSetting.GetPersonaHeader() :rSetting.GetPersonaFooter();
+    if ( !rPersonaBitmap.IsEmpty() &&( pThis->GetAlign() == WINDOWALIGN_TOP|| pThis->GetAlign()==WINDOWALIGN_BOTTOM ) )
     {
         Wallpaper aWallpaper( rPersonaBitmap );
-        aWallpaper.SetStyle( WALLPAPER_TOPRIGHT );
-        aWallpaper.SetColor( Application::GetSettings().GetStyleSettings().GetWorkspaceColor() );
+        if(pThis->GetAlign()==WINDOWALIGN_TOP )
+            aWallpaper.SetStyle( WALLPAPER_TOPRIGHT );
+        else
+            aWallpaper.SetStyle( WALLPAPER_BOTTOMRIGHT );
+        aWallpaper.SetColor( rSetting.GetWorkspaceColor() );
 
         // we need to shift the bitmap vertically so that it spans over the
         // menubar conveniently
@@ -155,6 +159,7 @@ void DockingAreaWindow::Paint( const Rectangle& )
     if( IsNativeControlSupported( CTRL_TOOLBAR, PART_ENTIRE_CONTROL ) )
     {
         ToolbarValue        aControlValue;
+        const StyleSettings rSetting = Application::GetSettings().GetStyleSettings();
 
         if( GetAlign() == WINDOWALIGN_TOP && ImplGetSVData()->maNWFData.mbMenuBarDockingAreaCommonBG )
         {
@@ -162,9 +167,11 @@ void DockingAreaWindow::Paint( const Rectangle& )
             // useful for special gradient effects that should cover both windows
             aControlValue.mbIsTopDockingArea = true;
         }
+
         ControlState        nState = CTRL_STATE_ENABLED;
+        const bool isFooter = GetAlign() == WINDOWALIGN_BOTTOM && !rSetting.GetPersonaFooter().IsEmpty();
 
-        if ( GetAlign() == WINDOWALIGN_TOP && !Application::GetSettings().GetStyleSettings().GetPersonaHeader().IsEmpty() )
+        if (( GetAlign() == WINDOWALIGN_TOP && !rSetting.GetPersonaHeader().IsEmpty() ) || isFooter  )
             Erase();
         else if ( !ImplGetSVData()->maNWFData.mbDockingAreaSeparateTB )
         {
diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx
index c42f80f..b8ac59a 100644
--- a/vcl/source/window/toolbox.cxx
+++ b/vcl/source/window/toolbox.cxx
@@ -524,11 +524,12 @@ void ToolBox::ImplDrawBackground( ToolBox* pThis, const Rectangle &rRect )
         bool bNativeOk = false;
         if( pThis->ImplIsFloatingMode() && pThis->IsNativeControlSupported( CTRL_TOOLBAR, PART_ENTIRE_CONTROL) )
             bNativeOk = ImplDrawNativeBackground( pThis, aPaintRegion );
-
+        const StyleSettings rSetting = Application::GetSettings().GetStyleSettings();
         if( !bNativeOk )
         {
+            const bool isFooter = pThis->GetAlign() == WINDOWALIGN_BOTTOM && !rSetting.GetPersonaFooter().IsEmpty();
             if( !pThis->IsBackground() ||
-                ( pThis->GetAlign() == WINDOWALIGN_TOP && !Application::GetSettings().GetStyleSettings().GetPersonaHeader().IsEmpty() ) )
+                (( pThis->GetAlign() == WINDOWALIGN_TOP && ! rSetting.GetPersonaHeader().IsEmpty() ) || isFooter ) )
             {
                 if( !pThis->IsInPaint() )
                     ImplDrawTransparentBackground( pThis, aPaintRegion );
@@ -1468,9 +1469,11 @@ void ToolBox::ImplInitSettings( bool bFont,
         else
         {
             if( IsNativeControlSupported( CTRL_TOOLBAR, PART_ENTIRE_CONTROL ) ||
-                ( GetAlign() == WINDOWALIGN_TOP && !Application::GetSettings().GetStyleSettings().GetPersonaHeader().IsEmpty() ) )
+                ( GetAlign() == WINDOWALIGN_TOP && !Application::GetSettings().GetStyleSettings().GetPersonaHeader().IsEmpty() )||
+                ( GetAlign() == WINDOWALIGN_BOTTOM && !Application::GetSettings().GetStyleSettings().GetPersonaFooter().IsEmpty()) )
             {
                 SetBackground();
+                SetTextColor(rStyleSettings.GetMenuBarTextColor());
                 SetPaintTransparent( true );
                 SetParentClipMode( PARENTCLIPMODE_NOCLIP );
                 mpData->maDisplayBackground = Wallpaper( rStyleSettings.GetFaceColor() );
commit e5bbc721d6bd5536bdd34f33fc79933a379f2919
Author: Luboš Luňák <l.lunak at collabora.com>
Date:   Mon Sep 29 18:54:53 2014 +0200

    test for mso-position-(horizontal|vertical)(-relative) (bnc#884615)
    
    Change-Id: I692de6c6d3cf2b932ba96cd9978cf56f75b8cb3e

diff --git a/sw/qa/extras/ooxmlexport/data/bnc884615-mso-position.docx b/sw/qa/extras/ooxmlexport/data/bnc884615-mso-position.docx
new file mode 100644
index 0000000..2fb28ec
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/bnc884615-mso-position.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
index fc12ff1..207970d 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
@@ -337,6 +337,43 @@ DECLARE_OOXMLEXPORT_TEST(testRot270Flipv, "rot270-flipv.docx")
     }
 }
 
+DECLARE_OOXMLEXPORT_TEST(testMsoPosition, "bnc884615-mso-position.docx")
+{
+    if(xmlDocPtr doc = parseExport("word/footer1.xml"))
+    {
+        // We write the frames out in different order than they were read, so check it's the correct
+        // textbox first by checking width. These tests may need reordering if that gets fixed.
+        OUString style1 = getXPath(doc, "/w:ftr/w:p/w:r[3]/mc:AlternateContent/mc:Fallback/w:pict/v:rect", "style");
+        CPPUNIT_ASSERT( style1.indexOf( ";width:531pt;" ) >= 0 );
+        CPPUNIT_ASSERT( style1.indexOf( ";mso-position-vertical-relative:page" ) >= 0 );
+        CPPUNIT_ASSERT( style1.indexOf( ";mso-position-horizontal-relative:page" ) >= 0 );
+        OUString style2 = getXPath(doc, "/w:ftr/w:p/w:r[4]/mc:AlternateContent/mc:Fallback/w:pict/v:rect", "style");
+        CPPUNIT_ASSERT( style2.indexOf( ";width:549pt;" ) >= 0 );
+        CPPUNIT_ASSERT( style2.indexOf( ";mso-position-vertical-relative:text" ) >= 0 );
+        CPPUNIT_ASSERT( style2.indexOf( ";mso-position-horizontal:center" ) >= 0 );
+        CPPUNIT_ASSERT( style2.indexOf( ";mso-position-horizontal-relative:text" ) >= 0 );
+        OUString style3 = getXPath(doc, "/w:ftr/w:p/w:r[5]/mc:AlternateContent/mc:Fallback/w:pict/v:rect", "style");
+        CPPUNIT_ASSERT( style3.indexOf( ";width:36pt;" ) >= 0 );
+        CPPUNIT_ASSERT( style3.indexOf( ";mso-position-horizontal-relative:text" ) >= 0 );
+        CPPUNIT_ASSERT( style3.indexOf( ";mso-position-vertical-relative:text" ) >= 0 );
+    }
+    if(xmlDocPtr doc = parseExport("word/header1.xml"))
+    {
+        OUString style1 = getXPath(doc, "/w:hdr/w:p/w:r[2]/mc:AlternateContent/mc:Fallback/w:pict/v:rect", "style");
+        CPPUNIT_ASSERT( style1.indexOf( ";width:335.75pt;" ) >= 0 );
+        CPPUNIT_ASSERT( style1.indexOf( ";mso-position-horizontal-relative:page" ) >= 0 );
+        CPPUNIT_ASSERT( style1.indexOf( ";mso-position-vertical-relative:page" ) >= 0 );
+        OUString style2 = getXPath(doc, "/w:hdr/w:p/w:r[3]/mc:AlternateContent/mc:Fallback/w:pict/v:rect", "style");
+        CPPUNIT_ASSERT( style2.indexOf( ";width:138.15pt;" ) >= 0 );
+        CPPUNIT_ASSERT( style2.indexOf( ";mso-position-horizontal-relative:page" ) >= 0 );
+        CPPUNIT_ASSERT( style2.indexOf( ";mso-position-vertical-relative:page" ) >= 0 );
+        OUString style3 = getXPath(doc, "/w:hdr/w:p/w:r[4]/mc:AlternateContent/mc:Fallback/w:pict/v:rect", "style");
+        CPPUNIT_ASSERT( style3.indexOf( ";width:163.8pt;" ) >= 0 );
+        CPPUNIT_ASSERT( style3.indexOf( ";mso-position-horizontal-relative:page" ) >= 0 );
+        CPPUNIT_ASSERT( style3.indexOf( ";mso-position-vertical-relative:page" ) >= 0 );
+    }
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 16dba68cf1eff65b81fbc75d1138604acc8abd08
Author: Luboš Luňák <l.lunak at collabora.com>
Date:   Mon Sep 29 18:53:44 2014 +0200

    map FRAME to VML's text
    
    Again, that's what this file does elsewhere, that's what (incomplete) import
    did before my changes, and it seems to match better the position that such
    an element gets in Word.
    
    Change-Id: Id09150eaaa505e6ddcd4baaf4a833000d52dd71d

diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index 03ed125..f206acf 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -7320,9 +7320,9 @@ void DocxAttributeOutput::FormatVertOrientation( const SwFmtVertOrient& rFlyVert
         case text::RelOrientation::CHAR:
         case text::RelOrientation::PRINT_AREA:
         case text::RelOrientation::TEXT_LINE:
+        case text::RelOrientation::FRAME:
             sVAnchor = OString( "text" );
             break;
-        case text::RelOrientation::FRAME:
         case text::RelOrientation::PAGE_LEFT:
         case text::RelOrientation::PAGE_RIGHT:
         case text::RelOrientation::FRAME_LEFT:
@@ -7380,9 +7380,9 @@ void DocxAttributeOutput::FormatHorizOrientation( const SwFmtHoriOrient& rFlyHor
     {
         case text::RelOrientation::CHAR:
         case text::RelOrientation::PRINT_AREA:
+        case text::RelOrientation::FRAME:
             sHAnchor = OString( "text" );
             break;
-        case text::RelOrientation::FRAME:
         case text::RelOrientation::PAGE_LEFT:
         case text::RelOrientation::PAGE_RIGHT:
         case text::RelOrientation::FRAME_LEFT:
commit b3bee2b8f8603700751941477504c47286355c3a
Author: Luboš Luňák <l.lunak at collabora.com>
Date:   Mon Sep 29 18:30:44 2014 +0200

    map PAGE_PRINT_AREA to VML's margin
    
    That's what the code does elsewhere in this file, and also import does it.
    
    Change-Id: I30e608f86a9cae66eed48dbb2e719b1455327ae3

diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index 6b49cbf..03ed125 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -7327,10 +7327,10 @@ void DocxAttributeOutput::FormatVertOrientation( const SwFmtVertOrient& rFlyVert
         case text::RelOrientation::PAGE_RIGHT:
         case text::RelOrientation::FRAME_LEFT:
         case text::RelOrientation::FRAME_RIGHT:
+        case text::RelOrientation::PAGE_PRINT_AREA:
             sVAnchor = OString( "margin" );
             break;
         case text::RelOrientation::PAGE_FRAME:
-        case text::RelOrientation::PAGE_PRINT_AREA:
         default:
             break;
     }
@@ -7387,10 +7387,10 @@ void DocxAttributeOutput::FormatHorizOrientation( const SwFmtHoriOrient& rFlyHor
         case text::RelOrientation::PAGE_RIGHT:
         case text::RelOrientation::FRAME_LEFT:
         case text::RelOrientation::FRAME_RIGHT:
+        case text::RelOrientation::PAGE_PRINT_AREA:
             sHAnchor = OString( "margin" );
             break;
         case text::RelOrientation::PAGE_FRAME:
-        case text::RelOrientation::PAGE_PRINT_AREA:
         default:
             break;
     }
commit 6ceeb0df6987bb7f70423b473b31eec54526481d
Author: Luboš Luňák <l.lunak at collabora.com>
Date:   Sun Sep 28 21:31:08 2014 +0200

    proper reading of mso-position-(horizontal|vertical)(-relative)
    
    Change-Id: I50f537c697f6e73c1fd150f3f03fc65b85ccbeaf

diff --git a/oox/source/token/properties.txt b/oox/source/token/properties.txt
index 90b8418..f1ef48b 100644
--- a/oox/source/token/properties.txt
+++ b/oox/source/token/properties.txt
@@ -339,6 +339,7 @@ OutputPosition
 OverlapSequence
 PageScale
 PageStyle
+PageToggle
 PageViewZoomValue
 PaintTransparent
 ParaAdjust
diff --git a/oox/source/vml/vmlshape.cxx b/oox/source/vml/vmlshape.cxx
index 7c5bc5c..1c826a1 100644
--- a/oox/source/vml/vmlshape.cxx
+++ b/oox/source/vml/vmlshape.cxx
@@ -473,12 +473,38 @@ void lcl_SetAnchorType(PropertySet& rPropSet, const ShapeTypeModel& rTypeModel)
 {
     if ( rTypeModel.maPositionHorizontal == "center" )
         rPropSet.setAnyProperty(PROP_HoriOrient, makeAny(text::HoriOrientation::CENTER));
+    else if ( rTypeModel.maPositionHorizontal == "left" )
+        rPropSet.setAnyProperty(PROP_HoriOrient, makeAny(text::HoriOrientation::LEFT));
+    else if ( rTypeModel.maPositionHorizontal == "right" )
+        rPropSet.setAnyProperty(PROP_HoriOrient, makeAny(text::HoriOrientation::RIGHT));
+    else if ( rTypeModel.maPositionHorizontal == "inside" )
+    {
+        rPropSet.setAnyProperty(PROP_HoriOrient, makeAny(text::HoriOrientation::LEFT));
+        rPropSet.setAnyProperty(PROP_PageToggle, makeAny(sal_True));
+    }
+    else if ( rTypeModel.maPositionHorizontal == "outside" )
+    {
+        rPropSet.setAnyProperty(PROP_HoriOrient, makeAny(text::HoriOrientation::RIGHT));
+        rPropSet.setAnyProperty(PROP_PageToggle, makeAny(sal_True));
+    }
 
     if ( rTypeModel.maPositionHorizontalRelative == "page" )
         rPropSet.setAnyProperty(PROP_HoriOrientRelation, makeAny(text::RelOrientation::PAGE_FRAME));
+    else if ( rTypeModel.maPositionVerticalRelative == "margin" )
+        rPropSet.setProperty(PROP_VertOrientRelation, text::RelOrientation::PAGE_PRINT_AREA);
+    else if ( rTypeModel.maPositionVerticalRelative == "text" )
+        rPropSet.setProperty(PROP_VertOrientRelation, text::RelOrientation::FRAME);
 
     if ( rTypeModel.maPositionVertical == "center" )
         rPropSet.setAnyProperty(PROP_VertOrient, makeAny(text::VertOrientation::CENTER));
+    else if ( rTypeModel.maPositionVertical == "top" )
+        rPropSet.setAnyProperty(PROP_VertOrient, makeAny(text::VertOrientation::TOP));
+    else if ( rTypeModel.maPositionVertical == "bottom" )
+        rPropSet.setAnyProperty(PROP_VertOrient, makeAny(text::VertOrientation::BOTTOM));
+    else if ( rTypeModel.maPositionVertical == "inside" )
+        rPropSet.setAnyProperty(PROP_VertOrient, makeAny(text::VertOrientation::LINE_TOP));
+    else if ( rTypeModel.maPositionVertical == "outside" )
+        rPropSet.setAnyProperty(PROP_VertOrient, makeAny(text::VertOrientation::LINE_BOTTOM));
 
     if ( rTypeModel.maPosition == "absolute" )
     {
@@ -495,7 +521,6 @@ void lcl_SetAnchorType(PropertySet& rPropSet, const ShapeTypeModel& rTypeModel)
         }
         else
         {
-            // Vertical placement relative to margin, because parent style must not modify vertical position
             rPropSet.setProperty(PROP_VertOrientRelation, text::RelOrientation::FRAME);
         }
     }
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index 8a1d84c..6b49cbf 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -7301,13 +7301,17 @@ void DocxAttributeOutput::FormatVertOrientation( const SwFmtVertOrient& rFlyVert
             sAlign = OString( "center" );
             break;
         case text::VertOrientation::BOTTOM:
-        case text::VertOrientation::LINE_BOTTOM:
             sAlign = OString( "bottom" );
             break;
+        case text::VertOrientation::LINE_BOTTOM:
+            sAlign = OString( "outside" );
+            break;
         case text::VertOrientation::TOP:
+            sAlign = OString( "top" );
+            break;
         case text::VertOrientation::LINE_TOP:
         default:
-            sAlign = OString( "top" );
+            sAlign = OString( "inside" );
             break;
     }
     OString sVAnchor( "page" );
commit 1424a8174eb37d26a2ec41a981a74f34661c0044
Author: Luboš Luňák <l.lunak at collabora.com>
Date:   Sun Sep 28 21:14:02 2014 +0200

    export in .docx also vml mso-position-(horizontal|vertical)(-relative)
    
    Change-Id: I65321bb6244e0e37ef673d726b698c3708711d53

diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index 0b703ad..8a1d84c 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -7291,121 +7291,123 @@ void DocxAttributeOutput::FormatSurround( const SwFmtSurround& rSurround )
 
 void DocxAttributeOutput::FormatVertOrientation( const SwFmtVertOrient& rFlyVert )
 {
+    OString sAlign;
+    switch( rFlyVert.GetVertOrient() )
+    {
+        case text::VertOrientation::NONE:
+            break;
+        case text::VertOrientation::CENTER:
+        case text::VertOrientation::LINE_CENTER:
+            sAlign = OString( "center" );
+            break;
+        case text::VertOrientation::BOTTOM:
+        case text::VertOrientation::LINE_BOTTOM:
+            sAlign = OString( "bottom" );
+            break;
+        case text::VertOrientation::TOP:
+        case text::VertOrientation::LINE_TOP:
+        default:
+            sAlign = OString( "top" );
+            break;
+    }
+    OString sVAnchor( "page" );
+    switch ( rFlyVert.GetRelationOrient( ) )
+    {
+        case text::RelOrientation::CHAR:
+        case text::RelOrientation::PRINT_AREA:
+        case text::RelOrientation::TEXT_LINE:
+            sVAnchor = OString( "text" );
+            break;
+        case text::RelOrientation::FRAME:
+        case text::RelOrientation::PAGE_LEFT:
+        case text::RelOrientation::PAGE_RIGHT:
+        case text::RelOrientation::FRAME_LEFT:
+        case text::RelOrientation::FRAME_RIGHT:
+            sVAnchor = OString( "margin" );
+            break;
+        case text::RelOrientation::PAGE_FRAME:
+        case text::RelOrientation::PAGE_PRINT_AREA:
+        default:
+            break;
+    }
+
     if (m_rExport.SdrExporter().getTextFrameSyntax())
     {
         m_rExport.SdrExporter().getTextFrameStyle().append(";margin-top:").append(double(rFlyVert.GetPos()) / 20).append("pt");
+        if ( !sAlign.isEmpty() )
+            m_rExport.SdrExporter().getTextFrameStyle().append(";mso-position-vertical:").append(sAlign);
+        m_rExport.SdrExporter().getTextFrameStyle().append(";mso-position-vertical-relative:").append(sVAnchor);
     }
     else if (m_rExport.SdrExporter().getDMLTextFrameSyntax())
     {
     }
     else if ( m_rExport.bOutFlyFrmAttrs )
     {
-        OString sAlign;
-        switch( rFlyVert.GetVertOrient() )
-        {
-            case text::VertOrientation::NONE:
-                break;
-            case text::VertOrientation::CENTER:
-            case text::VertOrientation::LINE_CENTER:
-                sAlign = OString( "center" );
-                break;
-            case text::VertOrientation::BOTTOM:
-            case text::VertOrientation::LINE_BOTTOM:
-                sAlign = OString( "bottom" );
-                break;
-            case text::VertOrientation::TOP:
-            case text::VertOrientation::LINE_TOP:
-            default:
-                sAlign = OString( "top" );
-                break;
-        }
-
         if ( !sAlign.isEmpty() )
             AddToAttrList( m_rExport.SdrExporter().getFlyAttrList(), FSNS( XML_w, XML_yAlign ), sAlign.getStr() );
         else
             AddToAttrList( m_rExport.SdrExporter().getFlyAttrList(), FSNS( XML_w, XML_y ),
                 OString::number( rFlyVert.GetPos() ).getStr() );
-
-        OString sVAnchor( "page" );
-        switch ( rFlyVert.GetRelationOrient( ) )
-        {
-            case text::RelOrientation::CHAR:
-            case text::RelOrientation::PRINT_AREA:
-            case text::RelOrientation::TEXT_LINE:
-                sVAnchor = OString( "text" );
-                break;
-            case text::RelOrientation::FRAME:
-            case text::RelOrientation::PAGE_LEFT:
-            case text::RelOrientation::PAGE_RIGHT:
-            case text::RelOrientation::FRAME_LEFT:
-            case text::RelOrientation::FRAME_RIGHT:
-                sVAnchor = OString( "margin" );
-                break;
-            case text::RelOrientation::PAGE_FRAME:
-            case text::RelOrientation::PAGE_PRINT_AREA:
-            default:
-                break;
-        }
-
         AddToAttrList( m_rExport.SdrExporter().getFlyAttrList(), FSNS( XML_w, XML_vAnchor ), sVAnchor.getStr() );
     }
 }
 
 void DocxAttributeOutput::FormatHorizOrientation( const SwFmtHoriOrient& rFlyHori )
 {
+    OString sAlign;
+    switch( rFlyHori.GetHoriOrient() )
+    {
+        case text::HoriOrientation::NONE:
+            break;
+        case text::HoriOrientation::LEFT:
+            sAlign = OString( rFlyHori.IsPosToggle( ) ? "inside" : "left" );
+            break;
+        case text::HoriOrientation::RIGHT:
+            sAlign = OString( rFlyHori.IsPosToggle( ) ? "outside" : "right" );
+            break;
+        case text::HoriOrientation::CENTER:
+        case text::HoriOrientation::FULL: // FULL only for tables
+        default:
+            sAlign = OString( "center" );
+            break;
+    }
+    OString sHAnchor( "page" );
+    switch ( rFlyHori.GetRelationOrient( ) )
+    {
+        case text::RelOrientation::CHAR:
+        case text::RelOrientation::PRINT_AREA:
+            sHAnchor = OString( "text" );
+            break;
+        case text::RelOrientation::FRAME:
+        case text::RelOrientation::PAGE_LEFT:
+        case text::RelOrientation::PAGE_RIGHT:
+        case text::RelOrientation::FRAME_LEFT:
+        case text::RelOrientation::FRAME_RIGHT:
+            sHAnchor = OString( "margin" );
+            break;
+        case text::RelOrientation::PAGE_FRAME:
+        case text::RelOrientation::PAGE_PRINT_AREA:
+        default:
+            break;
+    }
+
     if (m_rExport.SdrExporter().getTextFrameSyntax())
     {
         m_rExport.SdrExporter().getTextFrameStyle().append(";margin-left:").append(double(rFlyHori.GetPos()) / 20).append("pt");
+        if ( !sAlign.isEmpty() )
+            m_rExport.SdrExporter().getTextFrameStyle().append(";mso-position-horizontal:").append(sAlign);
+        m_rExport.SdrExporter().getTextFrameStyle().append(";mso-position-horizontal-relative:").append(sHAnchor);
     }
     else if (m_rExport.SdrExporter().getDMLTextFrameSyntax())
     {
     }
     else if ( m_rExport.bOutFlyFrmAttrs )
     {
-        OString sAlign;
-        switch( rFlyHori.GetHoriOrient() )
-        {
-            case text::HoriOrientation::NONE:
-                break;
-            case text::HoriOrientation::LEFT:
-                sAlign = OString( rFlyHori.IsPosToggle( ) ? "inside" : "left" );
-                break;
-            case text::HoriOrientation::RIGHT:
-                sAlign = OString( rFlyHori.IsPosToggle( ) ? "outside" : "right" );
-                break;
-            case text::HoriOrientation::CENTER:
-            case text::HoriOrientation::FULL: // FULL only for tables
-            default:
-                sAlign = OString( "center" );
-                break;
-        }
-
         if ( !sAlign.isEmpty() )
             AddToAttrList( m_rExport.SdrExporter().getFlyAttrList(), FSNS( XML_w, XML_xAlign ), sAlign.getStr() );
         else
             AddToAttrList( m_rExport.SdrExporter().getFlyAttrList(), FSNS( XML_w, XML_x ),
                 OString::number( rFlyHori.GetPos() ).getStr() );
-
-        OString sHAnchor( "page" );
-        switch ( rFlyHori.GetRelationOrient( ) )
-        {
-            case text::RelOrientation::CHAR:
-            case text::RelOrientation::PRINT_AREA:
-                sHAnchor = OString( "text" );
-                break;
-            case text::RelOrientation::FRAME:
-            case text::RelOrientation::PAGE_LEFT:
-            case text::RelOrientation::PAGE_RIGHT:
-            case text::RelOrientation::FRAME_LEFT:
-            case text::RelOrientation::FRAME_RIGHT:
-                sHAnchor = OString( "margin" );
-                break;
-            case text::RelOrientation::PAGE_FRAME:
-            case text::RelOrientation::PAGE_PRINT_AREA:
-            default:
-                break;
-        }
-
         AddToAttrList( m_rExport.SdrExporter().getFlyAttrList(), FSNS( XML_w, XML_hAnchor ), sHAnchor.getStr() );
     }
 }
commit f6fa78766ff7b6ed9f18228cfac21dccbd88706e
Author: Luboš Luňák <l.lunak at collabora.com>
Date:   Sat Sep 27 16:59:48 2014 +0200

    docx ST_VAnchor does not know "column", it should be "text"
    
    Change-Id: I3a5ab08e349c5c071373cda2f62e3cea593e263c

diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index 16f4700..0b703ad 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -7332,7 +7332,7 @@ void DocxAttributeOutput::FormatVertOrientation( const SwFmtVertOrient& rFlyVert
             case text::RelOrientation::CHAR:
             case text::RelOrientation::PRINT_AREA:
             case text::RelOrientation::TEXT_LINE:
-                sVAnchor = OString( "column" );
+                sVAnchor = OString( "text" );
                 break;
             case text::RelOrientation::FRAME:
             case text::RelOrientation::PAGE_LEFT:
commit 7d07cefa0e6fa7a1dc1ae0e22f0625975e8f57ac
Author: Tor Lillqvist <tml at collabora.com>
Date:   Mon Sep 29 19:32:42 2014 +0300

    Don't try to write into invalid locations on iOS 8
    
    Change-Id: I6a91dbd32bfebf26dbc4a83312cbe5b6af9c4fe5

diff --git a/ios/CustomTarget_TiledLibreOffice_app.mk b/ios/CustomTarget_TiledLibreOffice_app.mk
index 9c33364..98cc8cc 100644
--- a/ios/CustomTarget_TiledLibreOffice_app.mk
+++ b/ios/CustomTarget_TiledLibreOffice_app.mk
@@ -85,7 +85,7 @@ TiledLibreOffice_setup:
 	file=$(TiledLibreOffice_resource)/rc; \
 	echo '[Bootstrap]'                                       >  $$file; \
 	echo 'URE_BOOTSTRAP=file://$$APP_DATA_DIR/fundamentalrc' >> $$file; \
-	echo 'HOME=$$APP_DATA_DIR/tmp'                           >> $$file;
+	echo 'HOME=$$SYSUSERHOME'                                >> $$file;
 
 	# Set up fundamentalrc, unorc, bootstraprc and versionrc.
 	# Do we really need all these?
@@ -104,7 +104,7 @@ TiledLibreOffice_setup:
 	echo '[Bootstrap]'                                                              >  $$file; \
 	echo 'InstallMode=<installmode>'                                                >> $$file; \
 	echo "ProductKey=LibreOffice $(PRODUCTVERSION)"                                 >> $$file; \
-	echo 'UserInstallation=file://$$APP_DATA_DIR/../Library/Application%20Support'  >> $$file;
+	echo 'UserInstallation=$$SYSUSERHOME/userinstallation'                          >> $$file;
 
 	# Is this really needed?
 	file=$(TiledLibreOffice_resource)/program/versionrc; \
commit 0b72a16541cc6efa4ebc3dda9a68b0b8c7aaf352
Author: Tor Lillqvist <tml at collabora.com>
Date:   Mon Sep 29 19:25:41 2014 +0300

    Pretend the app-specific "Documents" directory is the home directory on iOS
    
    Change-Id: If8fda4b27adb2f83cbdfdbb20d90ced77e467a54

diff --git a/sal/osl/unx/security.cxx b/sal/osl/unx/security.cxx
index a7c32a9..3dff654 100644
--- a/sal/osl/unx/security.cxx
+++ b/sal/osl/unx/security.cxx
@@ -22,6 +22,12 @@
 #include <cstddef>
 #include <limits>
 
+#ifdef IOS
+#include <premac.h>
+#import <Foundation/Foundation.h>
+#include <postmac.h>
+#endif
+
 #include "system.h"
 
 #include <osl/security.h>
@@ -324,6 +330,19 @@ static bool SAL_CALL osl_psz_getHomeDir(oslSecurity Security, sal_Char* pszDirec
 }
 #endif
 
+#ifdef IOS
+    {
+        // Let's pretend the app-specific "Documents" directory is the home directory for now
+        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+        NSString *userDirectory = [paths objectAtIndex:0];
+        if ([userDirectory length] < nMax)
+        {
+            strcpy(pszDirectory, [userDirectory UTF8String]);
+            return sal_True;
+        }
+    }
+#endif
+
     /* if current user, check also environment for HOME */
     if (getuid() == pSecImpl->m_pPasswd.pw_uid)
     {
commit d680f6c924148a20a994ae2fb6898fabcffe7f77
Author: Tor Lillqvist <tml at collabora.com>
Date:   Mon Sep 29 18:45:45 2014 +0300

    More sal source files for debugging convenience
    
    Change-Id: I43f693901e10a81c486c4f4b10c9bb9c70af3448

diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj b/ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj
index 4c9e96f..9a2a69d 100644
--- a/ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj
@@ -403,6 +403,67 @@
 		BE6DC8FD19D9AF6100AFB393 /* IconThemeInfo.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = IconThemeInfo.cxx; path = ../../../vcl/source/app/IconThemeInfo.cxx; sourceTree = "<group>"; };
 		BE6DC8FE19D9AF6100AFB393 /* IconThemeScanner.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = IconThemeScanner.cxx; path = ../../../vcl/source/app/IconThemeScanner.cxx; sourceTree = "<group>"; };
 		BE6DC8FF19D9AF6100AFB393 /* IconThemeSelector.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = IconThemeSelector.cxx; path = ../../../vcl/source/app/IconThemeSelector.cxx; sourceTree = "<group>"; };
+		BE6DC90119D9B55E00AFB393 /* alloc_arena.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = alloc_arena.cxx; path = ../../../sal/rtl/alloc_arena.cxx; sourceTree = "<group>"; };
+		BE6DC90219D9B55E00AFB393 /* alloc_cache.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = alloc_cache.cxx; path = ../../../sal/rtl/alloc_cache.cxx; sourceTree = "<group>"; };
+		BE6DC90319D9B55E00AFB393 /* alloc_fini.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = alloc_fini.cxx; path = ../../../sal/rtl/alloc_fini.cxx; sourceTree = "<group>"; };
+		BE6DC90419D9B55E00AFB393 /* alloc_global.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = alloc_global.cxx; path = ../../../sal/rtl/alloc_global.cxx; sourceTree = "<group>"; };
+		BE6DC90519D9B55E00AFB393 /* bootstrap.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = bootstrap.cxx; path = ../../../sal/rtl/bootstrap.cxx; sourceTree = "<group>"; };
+		BE6DC90619D9B55E00AFB393 /* byteseq.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = byteseq.cxx; path = ../../../sal/rtl/byteseq.cxx; sourceTree = "<group>"; };
+		BE6DC90719D9B55E00AFB393 /* cipher.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = cipher.cxx; path = ../../../sal/rtl/cipher.cxx; sourceTree = "<group>"; };
+		BE6DC90819D9B55E00AFB393 /* cmdargs.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = cmdargs.cxx; path = ../../../sal/rtl/cmdargs.cxx; sourceTree = "<group>"; };
+		BE6DC90919D9B55E00AFB393 /* crc.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = crc.cxx; path = ../../../sal/rtl/crc.cxx; sourceTree = "<group>"; };
+		BE6DC90A19D9B55E00AFB393 /* digest.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = digest.cxx; path = ../../../sal/rtl/digest.cxx; sourceTree = "<group>"; };
+		BE6DC90B19D9B55E00AFB393 /* hash.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = hash.cxx; path = ../../../sal/rtl/hash.cxx; sourceTree = "<group>"; };
+		BE6DC90C19D9B55E00AFB393 /* locale.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = locale.cxx; path = ../../../sal/rtl/locale.cxx; sourceTree = "<group>"; };
+		BE6DC90D19D9B55E00AFB393 /* logfile.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = logfile.cxx; path = ../../../sal/rtl/logfile.cxx; sourceTree = "<group>"; };
+		BE6DC90E19D9B55E00AFB393 /* math.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = math.cxx; path = ../../../sal/rtl/math.cxx; sourceTree = "<group>"; };
+		BE6DC90F19D9B55E00AFB393 /* random.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = random.cxx; path = ../../../sal/rtl/random.cxx; sourceTree = "<group>"; };
+		BE6DC91019D9B55E00AFB393 /* rtl_process.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = rtl_process.cxx; path = ../../../sal/rtl/rtl_process.cxx; sourceTree = "<group>"; };
+		BE6DC91119D9B55E00AFB393 /* strbuf.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = strbuf.cxx; path = ../../../sal/rtl/strbuf.cxx; sourceTree = "<group>"; };
+		BE6DC91219D9B55E00AFB393 /* strimp.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = strimp.cxx; path = ../../../sal/rtl/strimp.cxx; sourceTree = "<group>"; };
+		BE6DC91319D9B55E00AFB393 /* string.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = string.cxx; path = ../../../sal/rtl/string.cxx; sourceTree = "<group>"; };
+		BE6DC91419D9B55E00AFB393 /* strtmpl.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = strtmpl.cxx; path = ../../../sal/rtl/strtmpl.cxx; sourceTree = "<group>"; };
+		BE6DC91519D9B55E00AFB393 /* unload.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = unload.cxx; path = ../../../sal/rtl/unload.cxx; sourceTree = "<group>"; };
+		BE6DC91619D9B55E00AFB393 /* uri.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = uri.cxx; path = ../../../sal/rtl/uri.cxx; sourceTree = "<group>"; };
+		BE6DC91719D9B55E00AFB393 /* ustrbuf.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ustrbuf.cxx; path = ../../../sal/rtl/ustrbuf.cxx; sourceTree = "<group>"; };
+		BE6DC91819D9B55E00AFB393 /* ustring.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ustring.cxx; path = ../../../sal/rtl/ustring.cxx; sourceTree = "<group>"; };
+		BE6DC91919D9B55E00AFB393 /* uuid.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = uuid.cxx; path = ../../../sal/rtl/uuid.cxx; sourceTree = "<group>"; };
+		BE6DC91B19D9B59400AFB393 /* compat.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = compat.cxx; path = ../../../sal/osl/all/compat.cxx; sourceTree = "<group>"; };
+		BE6DC91C19D9B59400AFB393 /* debugbase.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = debugbase.cxx; path = ../../../sal/osl/all/debugbase.cxx; sourceTree = "<group>"; };
+		BE6DC91D19D9B59400AFB393 /* filepath.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = filepath.c; path = ../../../sal/osl/all/filepath.c; sourceTree = "<group>"; };
+		BE6DC91E19D9B59400AFB393 /* loadmodulerelative.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = loadmodulerelative.cxx; path = ../../../sal/osl/all/loadmodulerelative.cxx; sourceTree = "<group>"; };
+		BE6DC91F19D9B59400AFB393 /* log.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = log.cxx; path = ../../../sal/osl/all/log.cxx; sourceTree = "<group>"; };
+		BE6DC92019D9B59400AFB393 /* utility.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = utility.cxx; path = ../../../sal/osl/all/utility.cxx; sourceTree = "<group>"; };
+		BE6DC92219D9B5DD00AFB393 /* backtrace.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = backtrace.c; path = ../../../sal/osl/unx/backtrace.c; sourceTree = "<group>"; };
+		BE6DC92319D9B5DD00AFB393 /* conditn.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = conditn.cxx; path = ../../../sal/osl/unx/conditn.cxx; sourceTree = "<group>"; };
+		BE6DC92419D9B5DD00AFB393 /* file_error_transl.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file_error_transl.cxx; path = ../../../sal/osl/unx/file_error_transl.cxx; sourceTree = "<group>"; };
+		BE6DC92519D9B5DD00AFB393 /* file_misc.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file_misc.cxx; path = ../../../sal/osl/unx/file_misc.cxx; sourceTree = "<group>"; };
+		BE6DC92619D9B5DD00AFB393 /* file_path_helper.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file_path_helper.cxx; path = ../../../sal/osl/unx/file_path_helper.cxx; sourceTree = "<group>"; };
+		BE6DC92719D9B5DD00AFB393 /* file_stat.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file_stat.cxx; path = ../../../sal/osl/unx/file_stat.cxx; sourceTree = "<group>"; };
+		BE6DC92819D9B5DD00AFB393 /* file_url.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file_url.cxx; path = ../../../sal/osl/unx/file_url.cxx; sourceTree = "<group>"; };
+		BE6DC92919D9B5DD00AFB393 /* file_volume.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file_volume.cxx; path = ../../../sal/osl/unx/file_volume.cxx; sourceTree = "<group>"; };
+		BE6DC92A19D9B5DD00AFB393 /* file.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file.cxx; path = ../../../sal/osl/unx/file.cxx; sourceTree = "<group>"; };
+		BE6DC92B19D9B5DD00AFB393 /* interlck.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = interlck.c; path = ../../../sal/osl/unx/interlck.c; sourceTree = "<group>"; };
+		BE6DC92C19D9B5DD00AFB393 /* memory.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = memory.c; path = ../../../sal/osl/unx/memory.c; sourceTree = "<group>"; };
+		BE6DC92D19D9B5DD00AFB393 /* module.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = module.cxx; path = ../../../sal/osl/unx/module.cxx; sourceTree = "<group>"; };
+		BE6DC92E19D9B5DD00AFB393 /* mutex.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = mutex.c; path = ../../../sal/osl/unx/mutex.c; sourceTree = "<group>"; };
+		BE6DC92F19D9B5DD00AFB393 /* nlsupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = nlsupport.c; path = ../../../sal/osl/unx/nlsupport.c; sourceTree = "<group>"; };
+		BE6DC93019D9B5DD00AFB393 /* osxlocale.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = osxlocale.cxx; path = ../../../sal/osl/unx/osxlocale.cxx; sourceTree = "<group>"; };
+		BE6DC93119D9B5DD00AFB393 /* pipe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pipe.c; path = ../../../sal/osl/unx/pipe.c; sourceTree = "<group>"; };
+		BE6DC93219D9B5DD00AFB393 /* process_impl.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = process_impl.cxx; path = ../../../sal/osl/unx/process_impl.cxx; sourceTree = "<group>"; };
+		BE6DC93319D9B5DD00AFB393 /* process.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = process.cxx; path = ../../../sal/osl/unx/process.cxx; sourceTree = "<group>"; };
+		BE6DC93419D9B5DD00AFB393 /* profile.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = profile.cxx; path = ../../../sal/osl/unx/profile.cxx; sourceTree = "<group>"; };
+		BE6DC93519D9B5DD00AFB393 /* readwrite_helper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = readwrite_helper.c; path = ../../../sal/osl/unx/readwrite_helper.c; sourceTree = "<group>"; };
+		BE6DC93619D9B5DD00AFB393 /* salinit.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = salinit.cxx; path = ../../../sal/osl/unx/salinit.cxx; sourceTree = "<group>"; };
+		BE6DC93719D9B5DD00AFB393 /* security.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = security.cxx; path = ../../../sal/osl/unx/security.cxx; sourceTree = "<group>"; };
+		BE6DC93819D9B5DD00AFB393 /* signal.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = signal.c; path = ../../../sal/osl/unx/signal.c; sourceTree = "<group>"; };
+		BE6DC93919D9B5DD00AFB393 /* socket.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = socket.c; path = ../../../sal/osl/unx/socket.c; sourceTree = "<group>"; };
+		BE6DC93A19D9B5DD00AFB393 /* system.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = system.c; path = ../../../sal/osl/unx/system.c; sourceTree = "<group>"; };
+		BE6DC93B19D9B5DD00AFB393 /* tempfile.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = tempfile.cxx; path = ../../../sal/osl/unx/tempfile.cxx; sourceTree = "<group>"; };
+		BE6DC93C19D9B5DD00AFB393 /* thread.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = thread.c; path = ../../../sal/osl/unx/thread.c; sourceTree = "<group>"; };
+		BE6DC93D19D9B5DD00AFB393 /* time.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = time.c; path = ../../../sal/osl/unx/time.c; sourceTree = "<group>"; };
+		BE6DC93E19D9B5DD00AFB393 /* uunxapi.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = uunxapi.cxx; path = ../../../sal/osl/unx/uunxapi.cxx; sourceTree = "<group>"; };
+		BE6DC93F19D9B5DD00AFB393 /* uunxapi.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = uunxapi.mm; path = ../../../sal/osl/unx/uunxapi.mm; sourceTree = "<group>"; };
 		BE6F3D67192E286B00D6FCC0 /* bitmap.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = bitmap.cxx; path = ../../../vcl/source/outdev/bitmap.cxx; sourceTree = "<group>"; };
 		BE6F3D68192E286B00D6FCC0 /* clipping.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = clipping.cxx; path = ../../../vcl/source/outdev/clipping.cxx; sourceTree = "<group>"; };
 		BE6F3D69192E286B00D6FCC0 /* curvedshapes.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = curvedshapes.cxx; path = ../../../vcl/source/outdev/curvedshapes.cxx; sourceTree = "<group>"; };
@@ -502,37 +563,6 @@
 		BE82BDAB182190E400A447B5 /* TiledView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TiledView.m; sourceTree = "<group>"; };
 		BE82BDAD1821A1D000A447B5 /* View.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = View.h; sourceTree = "<group>"; };
 		BE82BDAE1821A1D000A447B5 /* View.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = View.m; sourceTree = "<group>"; };
-		BE82C38918C752E20050EB79 /* backtrace.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = backtrace.c; path = ../../../sal/osl/unx/backtrace.c; sourceTree = "<group>"; };
-		BE82C38A18C752E20050EB79 /* conditn.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = conditn.cxx; path = ../../../sal/osl/unx/conditn.cxx; sourceTree = "<group>"; };
-		BE82C38B18C752E20050EB79 /* diagnose.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = diagnose.cxx; path = ../../../sal/osl/unx/diagnose.cxx; sourceTree = "<group>"; };
-		BE82C38C18C752E20050EB79 /* file_error_transl.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file_error_transl.cxx; path = ../../../sal/osl/unx/file_error_transl.cxx; sourceTree = "<group>"; };
-		BE82C38D18C752E20050EB79 /* file_misc.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file_misc.cxx; path = ../../../sal/osl/unx/file_misc.cxx; sourceTree = "<group>"; };
-		BE82C38E18C752E20050EB79 /* file_path_helper.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file_path_helper.cxx; path = ../../../sal/osl/unx/file_path_helper.cxx; sourceTree = "<group>"; };
-		BE82C38F18C752E20050EB79 /* file_stat.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file_stat.cxx; path = ../../../sal/osl/unx/file_stat.cxx; sourceTree = "<group>"; };
-		BE82C39018C752E20050EB79 /* file_url.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file_url.cxx; path = ../../../sal/osl/unx/file_url.cxx; sourceTree = "<group>"; };
-		BE82C39118C752E20050EB79 /* file_volume.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file_volume.cxx; path = ../../../sal/osl/unx/file_volume.cxx; sourceTree = "<group>"; };
-		BE82C39218C752E20050EB79 /* file.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file.cxx; path = ../../../sal/osl/unx/file.cxx; sourceTree = "<group>"; };
-		BE82C39318C752E20050EB79 /* interlck.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = interlck.c; path = ../../../sal/osl/unx/interlck.c; sourceTree = "<group>"; };
-		BE82C39418C752E20050EB79 /* memory.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = memory.c; path = ../../../sal/osl/unx/memory.c; sourceTree = "<group>"; };
-		BE82C39518C752E20050EB79 /* module.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = module.cxx; path = ../../../sal/osl/unx/module.cxx; sourceTree = "<group>"; };
-		BE82C39618C752E20050EB79 /* mutex.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = mutex.c; path = ../../../sal/osl/unx/mutex.c; sourceTree = "<group>"; };

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list