r16894 by jghali - merge trunk revisions up to r16857

scribus-commit scribus-commit at lists.scribus.net
Sat Oct 8 18:21:51 UTC 2011


Author: jghali
Date: Sat Oct  8 18:21:50 2011
New Revision: 16894

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=16894
Log:
merge trunk revisions up to r16857

Added:
    branches/ScribusOIF/doc/en/images/tb-bookbinder.png
      - copied unchanged from r16857, trunk/Scribus/doc/en/images/tb-bookbinder.png
    branches/ScribusOIF/doc/en/images/tb-gsview.png
      - copied unchanged from r16857, trunk/Scribus/doc/en/images/tb-gsview.png
    branches/ScribusOIF/doc/en/images/tb-inkscape.png
      - copied unchanged from r16857, trunk/Scribus/doc/en/images/tb-inkscape.png
    branches/ScribusOIF/doc/en/images/tb-jpdf.png
      - copied unchanged from r16857, trunk/Scribus/doc/en/images/tb-jpdf.png
    branches/ScribusOIF/doc/en/install.html
      - copied unchanged from r16857, trunk/Scribus/doc/en/install.html
    branches/ScribusOIF/doc/en/install1.html
      - copied unchanged from r16857, trunk/Scribus/doc/en/install1.html
    branches/ScribusOIF/doc/en/install2.html
      - copied unchanged from r16857, trunk/Scribus/doc/en/install2.html
    branches/ScribusOIF/doc/en/install4.html
      - copied unchanged from r16857, trunk/Scribus/doc/en/install4.html
    branches/ScribusOIF/doc/en/install5.html
      - copied unchanged from r16857, trunk/Scribus/doc/en/install5.html
    branches/ScribusOIF/doc/en/lipsum.html
      - copied unchanged from r16857, trunk/Scribus/doc/en/lipsum.html
    branches/ScribusOIF/doc/en/readme-os2.html
      - copied unchanged from r16857, trunk/Scribus/doc/en/readme-os2.html
    branches/ScribusOIF/doc/en/readme-win32.html
      - copied unchanged from r16857, trunk/Scribus/doc/en/readme-win32.html
    branches/ScribusOIF/resources/icons/16/delete-table-columns.png
      - copied unchanged from r16857, trunk/Scribus/resources/icons/16/delete-table-columns.png
    branches/ScribusOIF/resources/icons/16/delete-table-rows.png
      - copied unchanged from r16857, trunk/Scribus/resources/icons/16/delete-table-rows.png
    branches/ScribusOIF/resources/icons/16/insert-table-columns.png
      - copied unchanged from r16857, trunk/Scribus/resources/icons/16/insert-table-columns.png
    branches/ScribusOIF/resources/icons/16/insert-table-rows.png
      - copied unchanged from r16857, trunk/Scribus/resources/icons/16/insert-table-rows.png
    branches/ScribusOIF/resources/icons/16/merge-table-cells.png
      - copied unchanged from r16857, trunk/Scribus/resources/icons/16/merge-table-cells.png
    branches/ScribusOIF/resources/icons/16/split-table-cells.png
      - copied unchanged from r16857, trunk/Scribus/resources/icons/16/split-table-cells.png
    branches/ScribusOIF/resources/icons/22/delete-table-columns.png
      - copied unchanged from r16857, trunk/Scribus/resources/icons/22/delete-table-columns.png
    branches/ScribusOIF/resources/icons/22/delete-table-rows.png
      - copied unchanged from r16857, trunk/Scribus/resources/icons/22/delete-table-rows.png
    branches/ScribusOIF/resources/icons/22/insert-table-columns.png
      - copied unchanged from r16857, trunk/Scribus/resources/icons/22/insert-table-columns.png
    branches/ScribusOIF/resources/icons/22/insert-table-rows.png
      - copied unchanged from r16857, trunk/Scribus/resources/icons/22/insert-table-rows.png
    branches/ScribusOIF/resources/icons/22/merge-table-cells.png
      - copied unchanged from r16857, trunk/Scribus/resources/icons/22/merge-table-cells.png
    branches/ScribusOIF/resources/icons/22/split-table-cells.png
      - copied unchanged from r16857, trunk/Scribus/resources/icons/22/split-table-cells.png
    branches/ScribusOIF/resources/icons/select_column.png
      - copied unchanged from r16857, trunk/Scribus/resources/icons/select_column.png
    branches/ScribusOIF/resources/icons/select_row.png
      - copied unchanged from r16857, trunk/Scribus/resources/icons/select_row.png
    branches/ScribusOIF/scribus/canvasgesture_cellselect.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/canvasgesture_cellselect.cpp
    branches/ScribusOIF/scribus/canvasgesture_cellselect.h
      - copied unchanged from r16857, trunk/Scribus/scribus/canvasgesture_cellselect.h
    branches/ScribusOIF/scribus/canvasgesture_columnresize.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/canvasgesture_columnresize.cpp
    branches/ScribusOIF/scribus/canvasgesture_columnresize.h
      - copied unchanged from r16857, trunk/Scribus/scribus/canvasgesture_columnresize.h
    branches/ScribusOIF/scribus/canvasgesture_rowresize.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/canvasgesture_rowresize.cpp
    branches/ScribusOIF/scribus/canvasgesture_rowresize.h
      - copied unchanged from r16857, trunk/Scribus/scribus/canvasgesture_rowresize.h
    branches/ScribusOIF/scribus/canvasgesture_table.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/canvasgesture_table.cpp
    branches/ScribusOIF/scribus/canvasgesture_table.h
      - copied unchanged from r16857, trunk/Scribus/scribus/canvasgesture_table.h
    branches/ScribusOIF/scribus/canvasgesture_tableresize.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/canvasgesture_tableresize.cpp
    branches/ScribusOIF/scribus/canvasgesture_tableresize.h
      - copied unchanged from r16857, trunk/Scribus/scribus/canvasgesture_tableresize.h
    branches/ScribusOIF/scribus/canvasmode_edittable.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/canvasmode_edittable.cpp
    branches/ScribusOIF/scribus/canvasmode_edittable.h
      - copied unchanged from r16857, trunk/Scribus/scribus/canvasmode_edittable.h
    branches/ScribusOIF/scribus/cellarea.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/cellarea.cpp
    branches/ScribusOIF/scribus/cellarea.h
      - copied unchanged from r16857, trunk/Scribus/scribus/cellarea.h
    branches/ScribusOIF/scribus/collapsedtablepainter.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/collapsedtablepainter.cpp
    branches/ScribusOIF/scribus/collapsedtablepainter.h
      - copied unchanged from r16857, trunk/Scribus/scribus/collapsedtablepainter.h
    branches/ScribusOIF/scribus/pageitem_table.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/pageitem_table.cpp
    branches/ScribusOIF/scribus/pageitem_table.h
      - copied unchanged from r16857, trunk/Scribus/scribus/pageitem_table.h
    branches/ScribusOIF/scribus/plugins/scriptplugin/cmdcell.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/plugins/scriptplugin/cmdcell.cpp
    branches/ScribusOIF/scribus/plugins/scriptplugin/cmdcell.h
      - copied unchanged from r16857, trunk/Scribus/scribus/plugins/scriptplugin/cmdcell.h
    branches/ScribusOIF/scribus/plugins/scriptplugin/cmdtable.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/plugins/scriptplugin/cmdtable.cpp
    branches/ScribusOIF/scribus/plugins/scriptplugin/cmdtable.h
      - copied unchanged from r16857, trunk/Scribus/scribus/plugins/scriptplugin/cmdtable.h
    branches/ScribusOIF/scribus/styles/cellstyle.attrdefs.cxx
      - copied unchanged from r16857, trunk/Scribus/scribus/styles/cellstyle.attrdefs.cxx
    branches/ScribusOIF/scribus/styles/cellstyle.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/styles/cellstyle.cpp
    branches/ScribusOIF/scribus/styles/cellstyle.h
      - copied unchanged from r16857, trunk/Scribus/scribus/styles/cellstyle.h
    branches/ScribusOIF/scribus/styles/tablestyle.attrdefs.cxx
      - copied unchanged from r16857, trunk/Scribus/scribus/styles/tablestyle.attrdefs.cxx
    branches/ScribusOIF/scribus/styles/tablestyle.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/styles/tablestyle.cpp
    branches/ScribusOIF/scribus/styles/tablestyle.h
      - copied unchanged from r16857, trunk/Scribus/scribus/styles/tablestyle.h
    branches/ScribusOIF/scribus/tableborder.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/tableborder.cpp
    branches/ScribusOIF/scribus/tableborder.h
      - copied unchanged from r16857, trunk/Scribus/scribus/tableborder.h
    branches/ScribusOIF/scribus/tablecell.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/tablecell.cpp
    branches/ScribusOIF/scribus/tablecell.h
      - copied unchanged from r16857, trunk/Scribus/scribus/tablecell.h
    branches/ScribusOIF/scribus/tablehandle.h
      - copied unchanged from r16857, trunk/Scribus/scribus/tablehandle.h
    branches/ScribusOIF/scribus/tablepainter.h
      - copied unchanged from r16857, trunk/Scribus/scribus/tablepainter.h
    branches/ScribusOIF/scribus/tableutils.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/tableutils.cpp
    branches/ScribusOIF/scribus/tableutils.h
      - copied unchanged from r16857, trunk/Scribus/scribus/tableutils.h
    branches/ScribusOIF/scribus/tests/cellareatests.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/tests/cellareatests.cpp
    branches/ScribusOIF/scribus/tests/cellareatests.h
      - copied unchanged from r16857, trunk/Scribus/scribus/tests/cellareatests.h
    branches/ScribusOIF/scribus/tests/scripts/
      - copied from r16857, trunk/Scribus/scribus/tests/scripts/
    branches/ScribusOIF/scribus/ui/inserttablecolumnsdialog.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/inserttablecolumnsdialog.cpp
    branches/ScribusOIF/scribus/ui/inserttablecolumnsdialog.h
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/inserttablecolumnsdialog.h
    branches/ScribusOIF/scribus/ui/inserttablecolumnsdialog.ui
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/inserttablecolumnsdialog.ui
    branches/ScribusOIF/scribus/ui/inserttablerowsdialog.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/inserttablerowsdialog.cpp
    branches/ScribusOIF/scribus/ui/inserttablerowsdialog.h
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/inserttablerowsdialog.h
    branches/ScribusOIF/scribus/ui/inserttablerowsdialog.ui
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/inserttablerowsdialog.ui
    branches/ScribusOIF/scribus/ui/propertiespalette_table.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/propertiespalette_table.cpp
    branches/ScribusOIF/scribus/ui/propertiespalette_table.h
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/propertiespalette_table.h
    branches/ScribusOIF/scribus/ui/propertiespalette_tablebase.ui
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/propertiespalette_tablebase.ui
    branches/ScribusOIF/scribus/ui/smcellstyle.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/smcellstyle.cpp
    branches/ScribusOIF/scribus/ui/smcellstyle.h
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/smcellstyle.h
    branches/ScribusOIF/scribus/ui/smcellstylewidget.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/smcellstylewidget.cpp
    branches/ScribusOIF/scribus/ui/smcellstylewidget.h
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/smcellstylewidget.h
    branches/ScribusOIF/scribus/ui/smcellstylewidget.ui
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/smcellstylewidget.ui
    branches/ScribusOIF/scribus/ui/smtablestyle.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/smtablestyle.cpp
    branches/ScribusOIF/scribus/ui/smtablestyle.h
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/smtablestyle.h
    branches/ScribusOIF/scribus/ui/smtablestylewidget.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/smtablestylewidget.cpp
    branches/ScribusOIF/scribus/ui/smtablestylewidget.h
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/smtablestylewidget.h
    branches/ScribusOIF/scribus/ui/smtablestylewidget.ui
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/smtablestylewidget.ui
    branches/ScribusOIF/scribus/ui/tablecolumnwidthsdialog.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/tablecolumnwidthsdialog.cpp
    branches/ScribusOIF/scribus/ui/tablecolumnwidthsdialog.h
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/tablecolumnwidthsdialog.h
    branches/ScribusOIF/scribus/ui/tablecolumnwidthsdialog.ui
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/tablecolumnwidthsdialog.ui
    branches/ScribusOIF/scribus/ui/tablerowheightsdialog.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/tablerowheightsdialog.cpp
    branches/ScribusOIF/scribus/ui/tablerowheightsdialog.h
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/tablerowheightsdialog.h
    branches/ScribusOIF/scribus/ui/tablerowheightsdialog.ui
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/tablerowheightsdialog.ui
    branches/ScribusOIF/scribus/ui/tablesideselector.cpp
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/tablesideselector.cpp
    branches/ScribusOIF/scribus/ui/tablesideselector.h
      - copied unchanged from r16857, trunk/Scribus/scribus/ui/tablesideselector.h
Modified:
    branches/ScribusOIF/CMakeLists.txt
    branches/ScribusOIF/doc/en/WwFrames.html
    branches/ScribusOIF/doc/en/WwImages.html
    branches/ScribusOIF/doc/en/WwShapes.html
    branches/ScribusOIF/doc/en/WwText.html
    branches/ScribusOIF/doc/en/about1.html
    branches/ScribusOIF/doc/en/about2.html
    branches/ScribusOIF/doc/en/bugreport.html
    branches/ScribusOIF/doc/en/cli.html
    branches/ScribusOIF/doc/en/color1.html
    branches/ScribusOIF/doc/en/color4.html
    branches/ScribusOIF/doc/en/images/Scripter.png
    branches/ScribusOIF/doc/en/images/docheader1.png
    branches/ScribusOIF/doc/en/images/docheader2.png
    branches/ScribusOIF/doc/en/images/rf2.png
    branches/ScribusOIF/doc/en/importhints.html
    branches/ScribusOIF/doc/en/importhints2.html
    branches/ScribusOIF/doc/en/importhints3.html
    branches/ScribusOIF/doc/en/importhints4.html
    branches/ScribusOIF/doc/en/index.html
    branches/ScribusOIF/doc/en/keys.html
    branches/ScribusOIF/doc/en/layers.html
    branches/ScribusOIF/doc/en/menu.xml
    branches/ScribusOIF/doc/en/renderframes.html
    branches/ScribusOIF/doc/en/scripter1.html
    branches/ScribusOIF/doc/en/settings1.html
    branches/ScribusOIF/doc/en/short-words.html
    branches/ScribusOIF/doc/en/toolbox.html
    branches/ScribusOIF/doc/en/toolbox13.html
    branches/ScribusOIF/doc/en/toolbox15.html
    branches/ScribusOIF/doc/en/toolbox16.html
    branches/ScribusOIF/doc/en/toolbox17.html
    branches/ScribusOIF/doc/en/toolbox2.html
    branches/ScribusOIF/doc/en/toolbox3.html
    branches/ScribusOIF/doc/en/toolbox6.html
    branches/ScribusOIF/doc/en/toolbox8.html
    branches/ScribusOIF/doc/en/toolbox9.html
    branches/ScribusOIF/scribus/CMakeLists.txt
    branches/ScribusOIF/scribus/actionmanager.cpp
    branches/ScribusOIF/scribus/canvas.cpp
    branches/ScribusOIF/scribus/canvas.h
    branches/ScribusOIF/scribus/canvasgesture.h
    branches/ScribusOIF/scribus/canvasgesture_linemove.h
    branches/ScribusOIF/scribus/canvasgesture_pan.h
    branches/ScribusOIF/scribus/canvasgesture_rectselect.h
    branches/ScribusOIF/scribus/canvasgesture_resize.h
    branches/ScribusOIF/scribus/canvasgesture_rulermove.h
    branches/ScribusOIF/scribus/canvasmode.cpp
    branches/ScribusOIF/scribus/canvasmode.h
    branches/ScribusOIF/scribus/canvasmode_copyproperties.h
    branches/ScribusOIF/scribus/canvasmode_create.cpp
    branches/ScribusOIF/scribus/canvasmode_create.h
    branches/ScribusOIF/scribus/canvasmode_drawbezier.h
    branches/ScribusOIF/scribus/canvasmode_drawcalligraphic.cpp
    branches/ScribusOIF/scribus/canvasmode_drawcalligraphic.h
    branches/ScribusOIF/scribus/canvasmode_drawfreehand.cpp
    branches/ScribusOIF/scribus/canvasmode_drawfreehand.h
    branches/ScribusOIF/scribus/canvasmode_edit.cpp
    branches/ScribusOIF/scribus/canvasmode_edit.h
    branches/ScribusOIF/scribus/canvasmode_editarc.h
    branches/ScribusOIF/scribus/canvasmode_editgradient.h
    branches/ScribusOIF/scribus/canvasmode_editmeshgradient.h
    branches/ScribusOIF/scribus/canvasmode_editpolygon.h
    branches/ScribusOIF/scribus/canvasmode_editspiral.h
    branches/ScribusOIF/scribus/canvasmode_eyedropper.h
    branches/ScribusOIF/scribus/canvasmode_framelinks.cpp
    branches/ScribusOIF/scribus/canvasmode_framelinks.h
    branches/ScribusOIF/scribus/canvasmode_magnifier.cpp
    branches/ScribusOIF/scribus/canvasmode_magnifier.h
    branches/ScribusOIF/scribus/canvasmode_measurements.h
    branches/ScribusOIF/scribus/canvasmode_nodeedit.h
    branches/ScribusOIF/scribus/canvasmode_normal.cpp
    branches/ScribusOIF/scribus/canvasmode_normal.h
    branches/ScribusOIF/scribus/canvasmode_objimport.cpp
    branches/ScribusOIF/scribus/canvasmode_objimport.h
    branches/ScribusOIF/scribus/canvasmode_panning.h
    branches/ScribusOIF/scribus/canvasmode_rotate.h
    branches/ScribusOIF/scribus/commonstrings.cpp
    branches/ScribusOIF/scribus/commonstrings.h
    branches/ScribusOIF/scribus/fpoint.h
    branches/ScribusOIF/scribus/pageitem.cpp
    branches/ScribusOIF/scribus/pageitem.h
    branches/ScribusOIF/scribus/pageitem_textframe.cpp
    branches/ScribusOIF/scribus/pageitem_textframe.h
    branches/ScribusOIF/scribus/plugins/fileloader/scribus150format/scribus150format.cpp
    branches/ScribusOIF/scribus/plugins/scriptplugin/CMakeLists.txt
    branches/ScribusOIF/scribus/plugins/scriptplugin/cmdobj.cpp
    branches/ScribusOIF/scribus/plugins/scriptplugin/cmdobj.h
    branches/ScribusOIF/scribus/plugins/scriptplugin/cmdutil.cpp
    branches/ScribusOIF/scribus/plugins/scriptplugin/cmdutil.h
    branches/ScribusOIF/scribus/plugins/scriptplugin/scriptplugin.cpp
    branches/ScribusOIF/scribus/plugins/short-words/swdialog.cpp
    branches/ScribusOIF/scribus/plugins/short-words/swdialog.ui
    branches/ScribusOIF/scribus/resourcecollection.h
    branches/ScribusOIF/scribus/scpainter.cpp
    branches/ScribusOIF/scribus/scpainter.h
    branches/ScribusOIF/scribus/scribus.cpp
    branches/ScribusOIF/scribus/scribus.h
    branches/ScribusOIF/scribus/scribusdoc.cpp
    branches/ScribusOIF/scribus/scribusdoc.h
    branches/ScribusOIF/scribus/scribusstructs.h
    branches/ScribusOIF/scribus/scribusview.cpp
    branches/ScribusOIF/scribus/styles/CMakeLists.txt
    branches/ScribusOIF/scribus/styles/styleset.h
    branches/ScribusOIF/scribus/tests/CMakeLists.txt
    branches/ScribusOIF/scribus/tests/runtests.cpp
    branches/ScribusOIF/scribus/tests/testStoryText.cpp
    branches/ScribusOIF/scribus/ui/about.cpp
    branches/ScribusOIF/scribus/ui/contextmenu.cpp
    branches/ScribusOIF/scribus/ui/mergedoc.cpp
    branches/ScribusOIF/scribus/ui/modetoolbar.cpp
    branches/ScribusOIF/scribus/ui/propertiespalette.cpp
    branches/ScribusOIF/scribus/ui/propertiespalette.h
    branches/ScribusOIF/scribus/ui/resourcecollection.h
    branches/ScribusOIF/win32/vc9/Scribus.vcproj
    branches/ScribusOIF/win32/vc9/scriptplugin/scriptplugin.vcproj

Modified: branches/ScribusOIF/CMakeLists.txt
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/CMakeLists.txt
==============================================================================
--- branches/ScribusOIF/CMakeLists.txt (original)
+++ branches/ScribusOIF/CMakeLists.txt Sat Oct  8 18:21:50 2011
@@ -33,6 +33,8 @@
 INCLUDE(CheckCXXCompilerFlag)
 INCLUDE(CheckTypeSize)
 INCLUDE(TestBigEndian)
+
+#ENABLE_TESTING()
 
 #Set the custom CMake module directory where our include/lib finders are
 SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")

Modified: branches/ScribusOIF/doc/en/WwFrames.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/WwFrames.html
==============================================================================
--- branches/ScribusOIF/doc/en/WwFrames.html (original)
+++ branches/ScribusOIF/doc/en/WwFrames.html Sat Oct  8 18:21:50 2011
@@ -238,7 +238,7 @@
 default background or fill color of text and image frames is also None.
 <br>
 <br>
-For Shapes and Polygons, the default fill color is set to None, whereas the default line color is Black. For all
+For Shapes and Polygons, the default fill color is set to None, wheras the default line color is Black. For all
 kinds of frames these default colors can be set in <span style="font-style: italic;">File > Document Setup > Tools</span> for the current document and in <span style="font-style: italic;">File >
 Preferences > Tools</span> for new documents.
 <h3>Text Flow Around Frame</h3>
@@ -255,10 +255,10 @@
 the <span style="font-style: italic;">Shape</span> tab of Properties. For text and image frames, all 3 coincide
 with each other when they are created. <br>
 </p>
-      <p>As for shapes and polygons, only the frame and
+      <p>As for shapes and polygons, only only the frame and
 contour lines coincide (i.e., they are identical with the shape/polygon
-itself), whereas the bounding box is always the surrounding rectangle.
-Details will be found elsewhere, but in the
+itself), whereas the boundling box is always the surrounding rectangle.
+Details will be found in <a href="WwShapes.html">Working with Shapes</a>, but in the
 <span style="font-style: italic;">Shape</span> tab of the Properties Palette you can edit the frame/shape or the contour line
 independently. </p>
 
@@ -272,4 +272,11 @@
   </tbody>
 </table>
 
-</body></html>
+<hr>
+<p>See also</p>
+<ul>
+<li><a href="importhints3.html#1">Let Scribus create frames for you</a></li>
+</ul>
+</p>
+</body>
+</html>

Modified: branches/ScribusOIF/doc/en/WwImages.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/WwImages.html
==============================================================================
--- branches/ScribusOIF/doc/en/WwImages.html (original)
+++ branches/ScribusOIF/doc/en/WwImages.html Sat Oct  8 18:21:50 2011
@@ -4,13 +4,13 @@
 	<title>Working with Images</title>
 </head>
 
-<body>
+<p>
 <h2>Working with Images</h2>
 
 See <a href="WwFrames.html">Working with Frames</a> to learn about Image Frame frame creation and manipulation.  Note that the image frame shows as a red border with small square handles at the corners and at the midpoints of each side. Diagonals in black are drawn to indicate that it is an image frame. Note that these small square handles disappear when the frame is locked.
 
 <p>The quickest way to load an image into the frame is to right-click on the frame, and select <b>Get Image</b> from the Context menu. Pressing Ctrl+D or menu <i>File > Import > Get Image</i> will also work. A file dialog will appear, showing the image types that Scribus can import, which include bitmap formats TIFF, PNG, JPG and GIF as well as vector format PS (PostScript) and PDF files, which will be converted to bitmaps. Note that after import the image may only partly show. We'll see below in <i>Properties: Image</i> how to adjust scaling and positioning of the image in the frame.
-<p><i>Descriptions, advantages and disadvantages of various file formats will be discussed elsewhere.</i>
+</p>
 
 
 
@@ -46,21 +46,30 @@
 </table>
 <h3>Properties: Image</h3>
 <table cellpadding=3><tr>
-<td>When an Image is first loaded, the default is for it to have Free Scaling or as is set in <i>File > Preferences > Tools > Image</i>.
+<td>When an Image is first loaded, the default is for it to have Free Scaling, and will be imported at its "native" size, at 72 DPI (your monitor's resolution).
 
 <p>Under Free Scaling the spinboxes are:
 <ul>
 <li><b>X-Pos</b> and <b>Y-Pos</b> - Relative position of the left upper corner of the image to the left upper corner of the frame.</li>
-<li><b>X-Scale</b> and <b>Y-Scale</b> - Magnification of the image, compared to its native DPI.</li>
+<li><b>X-Scale</b> and <b>Y-Scale</b> - Magnification of the image, compared to when it is at 72 DPI.</li>
 <li><b>Actual X-DPI</b> and <b>Actual Y-DPI</b> - These of course are inversely related to magnification. Your monitor will still likely be showing the image at no better than 72 PPI, but this refers to the final resolution to be exported to the PDF.</li>
 </ul>
 <p>In many cases, we may have a more or less set frame size we wish to squeeze an entire image into, in which case choosing <b>Scale to Frame Size</b> (or <b>Adjust Image to Frame</b> from the Context menu) makes sense. Without checking <b>Proportional</b>, the image is simply stretched to fit the frame and may be quite distorted. You should find the combination of scaling to frame size (proportional) and then <b>Adjust Frame to Image</b> from the Context menu very useful for making a frame exactly the right size for your image.
-<p><b>Image Effects</b> will be discussed elsewhere.</td>
+<p></td>
 <td><img src="images/Image_Properties.png" ALT="Properties: Image"></td>
 </tr>
 </table>
 <h3>Edit Contents Mode</h3>
 Enter Edit Contents mode by clicking the icon on the toolbar, or pressing <b>E</b> from the keyboard. Go back to Select Item mode by pressing <b>Esc</b>, or clicking outside, then inside the frame. You will need to have checked <b>Free Scaling</b> in order for this to be operational.
-<p>With image frames, Edit Contents mode allows you to click-drag with the mouse to shift the image relative to the frame, i.e., the same as adjusting the X-Pos and Y-Pos in the Image tab.
+<p>With image frames, Edit Contents mode allows you to click-drag with the mouse to shift the image relative to the frame, i.e., the same as adjusting the X-Pos and Y-Pos in the Image tab.</p>
+<hr>
+<p>See also:
+<ul>
+<li><a href="WwFrames.html">Working with Frames</a></li>
+<li><a href="importhints.html">Importing</a></li>
+<li><a href="importhints1.html">Importing EPS</a></li>
+<li><a href="psd.html">Importing PSD</a></li>
+</ul>
+</p>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/WwShapes.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/WwShapes.html
==============================================================================
--- branches/ScribusOIF/doc/en/WwShapes.html (original)
+++ branches/ScribusOIF/doc/en/WwShapes.html Sat Oct  8 18:21:50 2011
@@ -11,8 +11,8 @@
 
 <h3>Shapes</h3>
 <table cellpadding=5><tr>
-<td>Shapes are a collection of predetermined shapes, and with version 1.3.5+ have been greatly increased in number. The default shape when you start Scribus is the simple rectangular shape which the icon shows. Just to the right side of the shape figure on the toolbar is an arrow for a drop down list of subselections. Once you select from a drop down category and specific type (click with the mouse), you see the toolbar icon change to your selected shape. <i>Note: the appearance of the Shapes icons has been enhanced in the image to the right – they will not appear as distinct as this.</i>
-<p>As stated in Working with Frames, the default line and fill color for shapes and polygons is None. You can change that for the current documents in <i>File > Document Setup > Tools > Shape (icon)</i>, and for future documents in <i>File > Preferences > Tools > Shape (icon)</i>.
+<td>Shapes are a collection of predetermined shapes, and with version 1.4.x have been greatly increased in number. The default shape when you start Scribus is the simple rectangular shape which the icon shows. Just to the right side of the shape figure on the toolbar is an arrow for a drop down list of subselections. Once you select from a drop down category and specific type (click with the mouse), you see the toolbar icon change to your selected shape. <i>Note: the appearance of the Shapes icons has been enhanced in the image to the right – they will not appear as distinct as this.</i>
+<p>As stated in Working with Frames, the default line and fill color for shapes and polygons is black. You can change that for the current documents in <i>File > Document Setup > Tools > Shape (icon)</i>, and for future documents in <i>File > Preferences > Tools > Shape (icon)</i>.
 <p>Just like other frames, you simply click-drag from one corner of the shape to its opposite. If you hold down Shift while click-dragging, when you let up on the mouse the shape will fill to the margins of your page.</td><td>
 <img src="images/shapes8.png" ALT="Shapes Drop-down lists" ALIGN=right></td>
 </tr>

Modified: branches/ScribusOIF/doc/en/WwText.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/WwText.html
==============================================================================
--- branches/ScribusOIF/doc/en/WwText.html (original)
+++ branches/ScribusOIF/doc/en/WwText.html Sat Oct  8 18:21:50 2011
@@ -15,7 +15,7 @@
 <li>You can also set up custom tags in text files to act as a filter for formatting on import.</li>
 </ul>
 <h3>Using Story Editor</h3>
-This is listed first because it is the recommended way to enter text manually from the keyboard. Bring up the Story Editor (SE) from the Context menu or with Ctrl+T. Because SE is very versatile, it will be covered in detail in its own section. Its main disadvantage is that you will not see the final appearance of the text until you update the frame, with or without exiting SE. SE is also a convenient way to apply Paragraph and Character Styles.
+This is listed first because it is the recommended way to enter text manually from the keyboard. Bring up the Story Editor (SE) from the Context menu or with Ctrl+T. Because SE is very versatile, it will be covered in detail in its own section. Its main disadvantage is that you will not see the final appearance of the text until you update the frame, with or without exiting SE. SE is also a convenient way to create, edit, and apply Paragraph and Character Styles.
 <h3>On the Main Screen</h3>
 A selected frame can enter Edit Contents mode by clicking the Edit Contents icon on the toolbar or double-clicking on the frame (keyboard: E). The advantage of this is that you can see immediately the appearance of your additions or edits. It is a bit slower, since screen refreshes are involved. You can use Properties to change the font, style, and other characteristics such as linespacing. For small edits and frames which only contain a small amount of text, Edit Contents can serve your needs well.
 <h3>Inline Graphics</h3>
@@ -51,7 +51,7 @@
 <td>Right-click on a frame to show its context menu, seen to the right. We will not cover all the features of the text frame context menu, but here is the particular list of choices available for text frames.
 <ul>
 <li>At the top, <b>Info</b> gives information about the content of the frame, statistics on number of paragraphs, lines, and so forth, and also whether this frame is set to print, which also applies to whether it will be included in PDF export.</li>
-<li><b>Undo</b> will undo the last operation on the frame. <b>Redo</b> is available when some operation has been undone.</li>
+<li><b>Undo</b> will undo the last operation on the frame, but it's important to mention that this does not include text editing, which is currently not Undo-able. <b>Redo</b> is available when some operation has been undone.</li>
 <li><b>Get Text</b> and <b>Append Text</b> allow for importation of text data from a file.</li>
 <li><b>Edit Text</b> brings up the Story Editor</b>
 <li><b>Sample Text</b> allows for importing so-called <i>Lorem ipsum</i> text, not only in the original Latin, but also many other languages. A dialog comes up for choice of the language and amount of sample text to create.</li>
@@ -88,7 +88,7 @@
 <h3>Properties: Text</h3>
 <table cellpadding=3><tr>
 <td><img src="images/text_tab1.png" ALT="Properties: Text tab" ALIGN="right"></td>
-<td><p>Due to the addition of new capabilities in versions 1.3.5+, and redesign of the Properties palette, the Text tab has become quite complex. The basic view seems simpler, but now we have a series of sub-tabs to choose from. At the top of the tab, there is a button for the font family, and then just below it the fontface in that family. Next we come to the spinbox for text size, and just below that a drop-down selector for linespacing, with 3 choices: <b>Fixed</b>, <b>Automatic</b>, and <b>Align to Baseline Grid</b>. Fixed linespacing allows you to set the space between lines of text using the spinbox to the right. Automatic spacing causes Scribus to adjust for you, according to the font size. The default setting for this is 120% of the font size, but this can be adjusted in <i>File > Preferences > Typography</i>. Finally, the row of buttons at the bottom sets justification – left, center, right, full, and forced full.
+<td><p>Due to the addition of new capabilities in Scribus 1.4.x, and redesign of the Properties palette, the Text tab has become quite complex. The basic view seems simpler, but now we have a series of sub-tabs to choose from. At the top of the tab, there is a button for the font family, and then just below it the fontface in that family. Next we come to the spinbox for text size, and just below that a drop-down selector for linespacing, with 3 choices: <b>Fixed</b>, <b>Automatic</b>, and <b>Align to Baseline Grid</b>. Fixed linespacing allows you to set the space between lines of text using the spinbox to the right. Automatic spacing causes Scribus to adjust for you, according to the font size. The default setting for this is 120% of the font size, but this can be adjusted in <i>File > Preferences > Typography</i>. Finally, the row of buttons at the bottom sets justification – left, center, right, full, and forced full.
 <p>At this point it should be mentioned that when you are in Select Item mode, any changes will apply to the entire frame contents. In Edit Contents mode, things are a bit more complex.
 <ul>
 <li>If your cursor is at some particular position, changes in font, fontface, and size apply to the single glyph to the right of the cursor.</li>
@@ -111,7 +111,7 @@
 <ol>
 <li>Underline sections of text, including intervening spaces. Hold down the button to make adjustments of <b>Displacement</b> and <b>Linewidth</b>. Defaults are in <i>File > Preferences > Typography</i>.</li>
 <li>Underline words only, not intervening spaces. Hold down the button to make adjustments of <b>Displacement</b> and <b>Linewidth</b>. Defaults are in <i>File > Preferences > Typography</i>.</li>
-<li>Subscript. Relative size (<b>Scaling</b>) and <b>Displacement</b> are set in <i>File > Preferences > Typography</i>.</li>
+<li>Subscript. Relative size (<<b>Scaling</b>) and <b>Displacement</b> are set in <i>File > Preferences > Typography</i>.</li>
 <li>Superscript.  Defaults are in <i>File > Preferences > Typography</i>.</li>
 <li>All caps.</li>
 <li>Small caps. There are a few fonts that have a real small caps subset, but this is a workaround for those that do not.</li>
@@ -173,6 +173,18 @@
 </tr>
 </table>
 <h3>Word Tracking and Glyph Extension</h3>
-You might consider these a more advanced or intelligent kerning and character width adjustment, where we can, by setting the Minimum and Normal, or Minimum and Maximum parameters, allow for adjustments in spacing in a selective fashion, yet frame-wide. As you adjust these, you will see only some words, some lines adjusting. The idea is to adjust for more pleasing, even layout of the words in the frame, trying to avoid or eliminate problems like white space rivers.
+<p>You might consider these a more advanced or intelligent kerning and character width adjustment, where we can, by setting the Minimum and Normal, or Minimum and Maximum parameters, allow for adjustments in spacing in a selective fashion, yet frame-wide. As you adjust these, you will see only some words, some lines adjusting. The idea is to adjust for more pleasing, even layout of the words in the frame, trying to avoid or eliminate problems like white space rivers.</p>
+<hr>
+<p>See also:
+<ul>
+<li><a href="WwFrames.html">Working with Frames</a></li>
+<li><a href="WwStyles.html">Working with Styles</a></li>
+<li><a href="hyphenator.html">Hyphenation</a></li>
+<li><a href="pagenumber.html">Page Numbering</a></li>
+<li><a href="short-words.html">Short Words Plug-in</a></li>
+<li><a href="importhints3.html">Importing OpenOffice.org and ODF Files</a></li>
+<li><a href="importhints4.html">Importing HTML</a></li>
+</ul>
+</p>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/about1.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/about1.html
==============================================================================
--- branches/ScribusOIF/doc/en/about1.html (original)
+++ branches/ScribusOIF/doc/en/about1.html Sat Oct  8 18:21:50 2011
@@ -4,96 +4,69 @@
 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>About the Scribus Team</title></head><body>
 <h2>About the Scribus Team (in order of joining)</h2>
 
-<p>Franz Schmid - "Our Linus..." original author, main coder, software developer for a publishing company</p>
+<p><b>Franz Schmid (fschmid):</b> “Our Linus …”. The original author and main coder; software developer for a manufacturing company.</p>
 
-<p>Peter Linnell - aka mrdocs - started with testing the 0.3.6 version,
-took over the documentation writing for 0.5.0; tester, rpm builder,
-original web master for <a href="http://www.scribus.net/">www.scribus.net,</a> Pre-Press/IT consultant for publishing and e-commerce companies.</p>
+<p><b>Peter Linnell (mrdocs):</b> Started with testing the 0.3.6 version, took over the documentation writing for 0.5.0; tester, RPM builder,
+original web master for the Scribus website; pre-press/IT consultant for publishing and e-commerce companies.</p>
 
-<p>Craig Bradney - aka MrB - started with 1.1.1, testing, setup of
-docs.scribus.net and bugs.scribus.net, manages the IRC channel #scribus
-on freenode.net; IT Manager for global e-commerce company.
-</p><p>Petr Vaněk - started with 1.1.4, plug-in specialist, has
-written several Scribus plug-ins and the how-to for Scribus plug-in
-writing; software engineer.</p>
+<p><b>Craig Bradney (MrB):</b> Started with 1.1.1; coding, testing, setup of docs.scribus.net and bugs.scribus.net, manages the IRC channels on freenode.net; IT manager for a global e-commerce company.</p>
 
-<p>Riku Leino - aka Tsoots - started with 1.1.5, wrote the Document
-Template plug-in and the OO/HTML importers for 1.2.2; IT Manager for
-large non-profit in Finland.</p>
+<p><b>Petr Vaněk:</b> Started with 1.1.4; plug-in specialist, has written several Scribus plug-ins and the how-to for Scribus plug-in writing; software engineer.</p>
 
-<p>Craig Ringer - Worked on the scripter, build system and tested
-Windows and Mac OSX port beginnings. Contributed fixes for Python and
-other enhancements; IT/DTP administrator for daily newspaper. </p>
+<p><b>Riku Leino (Tsoots):</b> Started with 1.1.5; wrote the Document Template plug-in and the OpenOffice.org/HTML importers for 1.2.2; IT manager for a large non-profit organization in Finland.</p>
 
-<p>Andreas Vox - pronounced [fox] -- started with 1.3.0. Developed
-original Mac OS X native port, font API specialist, hates C++, likes
-good layout and has a stupid comment for anything: software developer.</p>
+<p><b>Andreas Vox – pronounced [fox] – (avox):</b> Started with 1.3.0; developed the original Mac OS X native port, font and PostScript specialist, hates C++, likes good layout and has a stupid comment for anything; software developer.</p>
 
-<p>Jean Ghali - handles the Windows native port and much of the color
-management coding. Pre-press and software engineer for printing company.</p>
+<p><b>Jean Ghali (jghali):</b> Handles the Windows native port and much of the color management coding, gifted bughunter; pre-press and software engineer.</p>
 
-<p>Oleksandr Moskalenko, Phd.- aka malex - maintainer of Scribus Debian
-packages, helps with internationalization, translation, and user
-support in #scribus on IRC, tool scripts and the new Drupal-based
-www.scribus.net site, GSoC representative; molecular biologist.</p>
+<p><b>Oleksandr Moskalenko (malex):</b> Maintainer of the Scribus Debian packages, helps with internationalization, translation, maintainer of the Scribus website, GSoC representative; molecular biologist.</p>
 
-<p>Pierre Marchand - fonts, canvas, text layout and shaping. Developer of FontMatrix, has own IT company. </p>
+<p><b>Pierre Marchand (pierremarc);</b> Fonts, canvas, text layout and shaping. Developer of FontMatrix, software developer for a publishing company.</p>
 
-<p>Christoph Schäfer - Leading bug reporter and tester for bleeding
-edge Scribus. Wiki editor and doc translator/proofreader, one of the
-main authors of the Offcial Manual.</p>
+<p><b>Christoph Schäfer (christoph_s):</b> Bug reporter and tester for bleeding edge Scribus, Wiki editor and doc  translator/proofreader, one of the main authors of the Official Manual and the Scribus Online Help.</p>
 
-<p>Hermann Kraus - Wrote the Render frame system and GraphicsMagick and UniConvertor integration.</p>
-<p>Jain Basil Aliyas - Wrote the XTG and IDML import filters.<br>
-</p>
+<p><b>Hermann Kraus (Herm):</b> Wrote the Render Frame plug-in for 1.4 and GraphicsMagick and UniConvertor integration in 1.5.</p>
+
+<p><b>Jain Basil Aliyas (jainbasil)</b>: Wrote the XTG and IDML import filters, and worked on the next generation of the Scribus Scripter.</p>
+
+<p><b>Paul Smedley:</b> Maintainer of the OS/2 port.</p>
 
 
-<h2>The Supporting Cast and Former Developers</h2>
-<h4>Active users/contributors who have added to the Scribus community (in no particular order):</h4>
+<h2>The Supporting Cast and Former Developers (in no particular order):</h2>
 
-<p>Paul F. Johnson - aka Nodoid - started with sending patches for 0.8, did code review and code optimizing. </p>
+<p><b>Paul F. Johnson (Nodoid):</b> Started with sending patches for 0.8, did code review and code optimizing. </p>
 
-<p>Steve Callcott - aka sjc - wrote the Python plugin font sampler,
-which showed the real power of the Python Scripter in Scribus; works on
-systems control and consumer electronics, custom software and support.</p>
+<p><b>Steve Callcott (sjc):</b> Wrote the Python plug-in “Font Sampler”, which showed the real power of the Python Scripter in Scribus; works on systems control and consumer electronics, custom software and support.</p>
 
-<p>Alessandro Rimoldi - added fixes for localization and code clean-ups.</p>
+<p><b>Alessandro Rimoldi:</b> Added fixes for the Scripter and code clean-ups, GSoC mentor.</p>
 
-<p>J.J. Sarton - added some key patches for improving image handling and other improvements. Added the GIMP support to Scribus.</p>
+<p><b>J.J. Sarton:</b> Added some key patches for improving image handling and other improvements. Added the launcher for external image editors to Scribus.</p>
 
-<p>Alistair Robinson - added some important fixes for font handling in
-early Scribus versions. Also wrote the clever hack for GIMP to create
-CMYK TIFFs.</p>
+<p><b>Alistair Robinson:</b> Added some important fixes for font handling in early Scribus versions. Also wrote the clever hack for GIMP to create CMYK TIFFs.</p>
 
-<p>Maciej Hanski - Polish translator and writer of the PDF Forms how-to. One of the primary contributors to the Scribus wiki.</p>
+<p><b>Maciej Hanski:</b> Polish translator and writer of the “PDF Forms” how-to. One of the primary contributors to the Scribus Wiki.</p>
 
-<p>Yves Ceccone - Original French translator, wrote many of the Python
-scripts included with Scribus, maintained a large number of Docs for
-Scribus in French.</p>
+<p><b>Yves Ceccone:</b> Original French translator, wrote many of the Python scripts included with Scribus, maintained a large number of docs for Scribus in French.</p>
 
-<p>Martin Costabel - maintains the Scribus port and support libraries for Fink, allowing Scribus to run under X11 on MacOSX.</p>
+<p><b>Craig Ringer:</b> Worked on the scripter, build system and tested early Windows and Mac OS X ports. Contributed fixes for Python and other enhancements; IT/DTP administrator for a newspaper. </p>
 
-<p>Niyam Bhushan - contributed a terrific tutorial on Scribus.</p>
+<p><b>Martin Costabel:</b> Maintains the Scribus port and support libraries for Fink, allowing Scribus to run under X11 on Mac OS X.</p>
 
-<p>Marti Maria - for answering tons of our questions on color management and providing littlecms.</p>
+<p><b>Niyam Bhushan:</b> Contributed a terrific tutorial on Scribus.</p>
 
-<p>Johannes Rüschel - Excellent bug finder, former German translator.</p>
+<p><b>Marti Maria:</b> Answered tons of our questions on color management and provided littleCMS to the the Open Source world.</p>
 
-<p>Alexandre Prokoudine - Russian Translator, has helped a bunch with
-internationalization issues, as well as designing UI improvements;
-professional technical writer.</p>
+<p><b>Johannes Rüschel:</b> Excellent bug finder, former German translator.</p>
 
-<p>"Lukasz [DeeJay1] Jernas" - PLD Linux package maintainer. </p>
+<p><b>Alexandre Prokoudine:</b> Russian Translator, has helped a bunch with internationalization issues, as well as designing UI improvements; professional technical writer.</p>
 
-<p>Howard White - Retired Pre-Press Engineer - Testing and testing and more testing. Always daring to test bleeding edge code. </p>
+<p><b>Lukasz Jernas (DeeJay1):</b> PLD Linux package maintainer. </p>
 
-<p>Cedric Gemy - Graphics Professor and author - UI testing and feedback, GSoC mentor.</p>
+<p><b>Howard White:</b> Testing and testing and more testing; retired pre-press engineer.</p>
 
-<p>Dr. Greg Pittman - One of the primary contributors to the scribus wiki and the documentation, one of the main authors of the Offcial Manual; author of several useful Scribus scripts.<br>
-</p>
-<p>Paul Smedley - Maintainer of the OS/2 port.<br>
-</p>
+<p><b>Cedric Gemy:</b> UI testing and feedback, GSoC mentor; graphics professor and author of books on Open Source graphics software. </p>
 
+<p><b>Gregory Pittman:</b> One of the primary contributors to the Scribus wiki and the documentation, one of the main authors of the Official Manual and the Scribus Online Help; author of several useful Scribus scripts; neurologist.</p>
 
-Volker Ribbert - started with the German translation of the German docs.<br>
+<p><b>Volker Ribbert:</b> Started with the German translation of the docs.</p>
 </body></html>

Modified: branches/ScribusOIF/doc/en/about2.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/about2.html
==============================================================================
--- branches/ScribusOIF/doc/en/about2.html (original)
+++ branches/ScribusOIF/doc/en/about2.html Sat Oct  8 18:21:50 2011
@@ -9,8 +9,8 @@
 <h3>Why Page Layout is Different from Word Processing</h3>
 
 <p>What can you do with Scribus – and what is a “page layout” program? </p>
-<p>First, you should be aware that Scribus, like all advanced DTP programs, is very different from a word processor. Word processors are designed to quickly set up a page, most likely US Letter or A4 size, then immediately begin entering text. Scribus, on the other hand, is an application designed to do page layout, such applications are more commonly known as Desktop Publishing (DTP) programs.</p>
-<p>These programs give users great flexibility in placing objects like photos, logos, text frames and shapes in an exact position and orientation with great precision. This page will cover some overall concepts of good, efficient page layout and design, but especially if you’re a first-time user, you are strongly encouraged to go through the  <a href="qsg.html">Quick Start Guide</a> to get a sense of what Scribus can do and how to avoid mistakes.</p>
+<p>First, you should be aware that Scribus, like all advanced DTP programs, is very different from a word processor. Word processors are designed to quickly set up a page, most likely US Letter or A4 size, then immediately begin entering text. Scribus, on the other hand, is an application designed to do page layout, and such applications are more commonly known as Desktop Publishing (DTP) programs.</p>
+<p>These programs give users great flexibility in placing objects like photos, logos, text frames and shapes in an exact position and orientation with great precision. This page will cover some basic concepts of page layout and design, but especially if you’re a first-time user, you are strongly encouraged to go through the  <a href="qsg.html">Quick Start Guide</a> to get a sense of what Scribus can do and how to avoid mistakes.</p>
 
 <h3>The Final Assembly Line</h3>
 <p>First-time users of page layout applications like Scribus can find starting out quite frustrating, since they expect to open a new document and immediately start typing, but a Scribus document is really just a space to work in, and there is no expectation that there will be any text at all.</p>
@@ -26,13 +26,13 @@
 <p>Since there are many inspiring designs for almost every purpose available, it’s quite easy to find examples to stimulate your imagination. However, learning from existing examples is something different than copying a layout – it’s actually hard work, because you need to analyze a layout, for example by using a ruler to determine page margins, dimensions etc. This isn’t to say that all that you see that is eye-grabbing is good design for all circumstances. Start with a sense of what you want to do, perhaps educate someone or show off some visual display or product. Your intended purpose can then help you look for good examples of design that do this well.</p>
 <p>Learning from the masters in the art will probably help you further with becoming creative yourself than anything else. Later you may find that reading books on page layout, typography or color theory help advance your knowledge, and most of them are full of inspiring examples.</p>
 <p>Once you think you have created a great layout on your drawing block, the analyzing doesn’t stop, quite the contrary! Part of the planning stage is to determine which parts of your layout are static and should become part of a <a href="pagetemplate1.html">Master Page</a>. You also need to find out which elements will be repeatedly used in different places of your layout, as you can store all those elements in a single directory that can be used as a Scrapbook folder etc.</p>
-<p>Layout considerations aside, there is another important aspect to your project planning, namely the other side of the assembly process, commercial printing. It is <b>very</b> important to know beforehand what kind of files (e.g. PDF versions) a printer can handle, and if you plan to use <a href="color1.html">spot colors</a>, you should know in advance which colors the printer can reliably reproduce. All this information will influence the next stages of production on your side. Even if you will be printing on your own local printer, you need to be aware of the capabilities and limitations of your printer.</p>
+<p>Layout considerations aside, there is another important aspect to your project planning, namely the other side of the assembly process, commercial printing. It is <b>very</b> important to know beforehand what kind of files (e.g. PDF versions) a printer can handle, and if you plan to use <a href="color1.html">spot colors</a>, you should know in advance which colors the printer can reliably reproduce. All this information will influence the next stages of production on your side. Even if you will be printing on your own local printer, you need to be aware of the capabilities and limitations of the device.</p>
 <h4>Preparing Your Suppliers</h4>
 <p>Making all the materials yourself, such as text, images, and graphics, is certainly possible, but many who do page layout are coordinating and assembling these ingredients created or edited by others. Just like a manufacturer of machines is coordinating with its suppliers to avoid frictions and hiccups during the final assembly, you can avoid problems by providing guidelines to those who will produce the “components” or “ingredients” of your layout (and if you do everything yourself, you can make some mental notes to avoid hassles down the road). With experience, you will quickly see that altering the content can result in a need to extensively redesign the layout.</p>
 <p>For writers it should be clear which file formats are acceptable. Ideally, only a single file format should be used, and if that’s impossible, perhaps due to different software tools available, plain text files can be used as the lowest common denominator. Writers should also be advised to use consistent spelling, quotes, dashes, etc.</p>
 <p>As for graphics files, you should figure out which <a href="importhints.html">file formats</a> work best for you and then ask contributors of graphics not to use anything else. You should also provide clear guidelines for the use of <a href="color1.html">spot colors</a>, image resolutions and <a href="cms.html">color profiles</a>.</p>
 <h4>Getting Ready to Work</h4>
-<p>From experience it can be said that the final layout should only be started when you have collected all the components you need, and that’s especially true for text. If an image needs color corrections it can be done with the layout in place, but changes to a text, like adding a line or even a paragraph, can result in a <b>lot</b> of extra work, as the placement of graphics or captions needs to be adjusted. Thus, make sure that no surprises will happen down the line.</p>
-<p>As you start your work, it’s always good practice to collect all project files in a single project directory, with subdirectories for text, vector graphics, image files and other file types you need for your project. Files that you want to re-use often should be moved into a single Scrapbook directory for use in Scribus. Once you’ve done all this, you are ready to go ...</p>
+<p>From experience it can be said that the final layout should only be started when you have collected all the components you need, and that’s especially true for text. If an image needs color corrections, these can be done with the layout in place, but changes to a text, like adding a line or even a paragraph, can result in a <b>lot</b> of extra work, as the placement of graphics or captions needs to be adjusted. Thus, make sure that no surprises will happen down the line.</p>
+<p>As you start your work, it’s always good practice to collect all project files in a single project directory, with subdirectories for text, vector graphics, image files and other file types you need for your project. Files that you want to re-use often should be moved into a single Scrapbook directory for use in Scribus. Once you’ve done all this, you are ready to go …</p>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/bugreport.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/bugreport.html
==============================================================================
--- branches/ScribusOIF/doc/en/bugreport.html (original)
+++ branches/ScribusOIF/doc/en/bugreport.html Sat Oct  8 18:21:50 2011
@@ -1,80 +1,81 @@
 <html>
-<head><TITLE>Filing a Bug Report</TITLE></head>
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+	<title>Filing a Bug Report</title>
+</head>
+<body>
+<h2>Filing a Bug report</h2>
+<p>Successful software development is almost hopeless without testing, and that’s true for Scribus as well, of course. Testing means using the software, especially development versions. Bugs, when discovered, need to be reported to let the developers know that something’s wrong or at least seems to be wrong, so the problem can be fixed. Sometimes the fix may simply be a documentation update. Moreover, the developers need to know what kind of features users need. In such a case case, someone who is missing a feature or has a great idea, should let the Scribus Team know about it.</p>
 
-<body>
+<p>In all cases, the procedure is the same. There exists a software category called <i>bug tracking systems</i>, which allows developers to keep track of, discuss and review bug reports and RFEs (requests for enhancement). The Scribus Team has decided to use the <a href="http://www.mantisbt.org/">Mantis</a> bug tracking system. If you want to help with improving Scribus or absolutely need a feature, you are advised to learn how to use it.</p>
 
-<h1>Introduction</h1>
-<p>Software development is almost useless without testing, and that's true for Scribus as well, of course. Testing means using the software, especially development versions. Bugs, when discovered, need to be reported to let the developers know that something's wrong or at least seems to be wrong, so the problem can be fixed, if necessary. Sometimes the fix may simply be an update to the online documentation, the wiki or the next edition of the Official Manual. Moreover, the developers need to know what kind of features users need. In such a case case, someone who is missing a feature or has a great idea, should also let the team know about it.</p>
+<h2>Creating an Account</h2>
 
-<p>In both cases, the procedure is the same. There is a software called <i>bug tracking system</i>, in Scribus' case this is <a href="http://www.mantisbt.org/">Mantis</a>. A bug tracking system allows developers to keep track of, discuss and review bug reports and RFEs (requests for enhancement). If you want to help to improve Scribus or absolutely need a feature, you are advised to use it.</p>
-
-<h1>How to Create an Account</h1>
-
-<p>First, visit the <a href="http://bugs.scribus.net/signup_page.php">signup page</a>. You will see a page that looks like this:</p>
+<p>First, visit the <a href="http://bugs.scribus.net/signup_page.php">sign-up page</a>. You will see a page that looks like this:</p>
 <br>
 <table width="100%"><tr><td align="center"><img src="images/Mantis_signup.png"/></td></tr></table>
 <br>
-<p>Enter a login name, your email address and the digits displayed. Then click <i>Signup</i> and wait until your account has been confirmed and you received a password. You can change your personal preferences any time in the tab "My account," provided you are logged in. Please take the time to check the different options. They may or may not be useful to you.</p>
+<p>Enter a login name, your e-mail address and the digits displayed. Then click “Signup” and wait until your account has been confirmed and you received a password via e-mail. You can change your personal preferences any time in the tab “My account,” provided you are logged in. Please take the time to check the different options. They may or may not be useful to you.</p>
 
-<h1>Before filing a bug</h1>
-<p>If something doesn't work as expected or you think you have the idea of the century, please don't start firing up bug reports galore. Chances are that someone has already had the same problem, perhaps even the same great idea. Five steps are recommended to ensure your report won't be closed as "duplicate" or "no change required".</p>
+<h2>Before Filing a Bug Report</h2>
+<p>If something doesn’t work as expected, or you think you have the idea of the century, please don’t start firing up bug reports galore. Chances are that someone has already had the same problem, perhaps even the same great idea. Five steps are recommended to ensure your report won’t be closed as “Duplicate” or “No change required”.</p>
 
-<ol><li>Read the <a href="http://docs.scribus.net/">Scribus documentation</a>, rummage the <a href="http://wiki.scribus.net/index.php">Scribus wiki</a> or even consider buying the <a href="http://www.scribus.net/?q=node/171">Official Scribus Manual</a>. There are lots of informations in different languages available, and perhaps someone has already turned his own experiences into a wiki article, or the documentation team may have documented a feature/issue thoroughly by then.</li>
-<li>Try to really use Scribus and learn about its concepts. Compared to other DTP programs, Scribus is not hard to learn, but it is still quite different from, say, a word processor.</li>
-<li>Tell one of the <a href="http://lists.scribus.info/mailman/listinfo/">mailing lists</a> about your problem or your idea. Things normally get sorted out quickly. Often enough, a supposed bug is just lack of experience.</li>
-<li>Ask questions on <a href="irc://irc.freenode.net/#scribus">IRC</a>. This is especially useful for "real time" support.</li>
-<li>If your questions still haven't been answered, you should browse the bug database. You can search for keywords. As you can see on the screenshot below, you can enter a keyword in the "Search" field. Then click <i>Apply</i>, and Mantis will search for all reports containing the text string. If you don't know the correct English word to search for, you can skim the multilingual <a href="/index.php/Glossary_of_technical_terms_used_in_Scribus_and_its_translations">Glossary</a> on the Wiki for a translation. If you use a non-English version of Scribus and want to look up the English names of menu items, just switch the Scribus interface to English: <i>File > Preferences > General > Language</i></li>
+<ol>
+<li>Read the <a href="http://docs.scribus.net/">Scribus Online Documentation</a>, rummage the <a href="http://wiki.scribus.net/index.php">Scribus Wiki</a>, or even consider buying the Official Scribus Manual. There are lots of informations in different languages available, and perhaps someone has already turned his own experiences into a Wiki article, or the documentation team may have documented a feature/issue thoroughly by then.</li>
+<li>Try to really use Scribus and learn about its concepts. The use of Scribus is not hard to learn, but it is still <a href="about2.html">quite different</a> from, say, a word processor.</li>
+<li>Post your problem or your idea on one of the <a href="mailing_lists.html">mailing lists</a>. Things normally get sorted out quickly. Often enough, a supposed bug is just lack of experience.</li>
+<li>Ask questions on <a href="irc.html">IRC</a>. This is especially useful for “real time” support.</li>
+<li>If your questions still haven’t been answered, you can browse the bug database. You can search for keywords. As you can see on the screenshot below, you can enter a keyword in the “Search” field. Then click “Apply,” and Mantis will search for all reports containing the text string. If you don’t know the correct English word to search for, you can skim the multilingual <a href="http://wiki.scribus.net/index.php/Glossary_of_technical_terms_used_in_Scribus_and_its_translations">Glossary</a> on the Wiki for a translation. If you use a non-English version of Scribus and want to look up the English names of menu items, just switch the Scribus interface language to English in the <a href="settings1.html#1">Preferences</a>.</li>
 </ol>
 <br>
 <table width="100%"><tr><td align="center"><img src="images/Mantis_searching.png"/></td></tr></table>
 <br>
-</p><p>You will notice that the reports are coloured differently. The meaning of the different colours is:</p>
+</p><p>You will notice that Mantis uses different colors to indicate the status of the reports. The meaning of the different colors is:</p>
 <table class="width100" cellspacing="1"><tr><td class="small-caption" width="14%" bgcolor="#ffa0a0">new</td><td class="small-caption" width="14%" bgcolor="#ff50a8">feedback</td><td class="small-caption" width="14%" bgcolor="#ffd850">acknowledged</td><td class="small-caption" width="14%" bgcolor="#ffffb0">confirmed</td><td class="small-caption" width="14%" bgcolor="#c8c8ff">assigned</td><td class="small-caption" width="14%" bgcolor="#cceedd">resolved</td><td class="small-caption" width="14%" bgcolor="#e8e8e8">closed</td></tr></table>
 <br>
 
-<ul><li><i>New</i>: The bug/RFE is reported, and no decision has been made as to how to handle it.</li>
-<li><i>Feedback</i>: Feedback is required from either the original reporter or someone who added a note to the report. This happens quite often in cases where an issue can't be reproduced.</li>
-<li><i>Acknowledged</i>: Once the team has decided a suggestion is worth keeping in mind for further development, the status is changed to "acknowledged." This is mostly the case with RFEs.</li>
-<li><i>Confirmed</i>: If a reported bug could be reproduced by others, the status will change to "confirmed." This is what usually happens to bug reports.</li>
-<li><i>Assigned</i>: A bug or RFE is assigned to a developer for fixing it or adding a feature.</li>
-<li><i>Resolved</i>: A bug or RFE is resolved. That doesn't necessarily mean a developer wrote any code. If things cannot or need not be fixed, the issue will be resolved as well.</li>
+<ul><li><i>New</i>: The bug/RFE has been reported, and no decision has been made as to how to handle it.</li>
+<li><i>Feedback</i>: Feedback is required from either the original reporter or someone who added a note to the report. This happens quite often in cases where an issue can’t be reproduced.</li>
+<li><i>Acknowledged</i>: Once the team has decided a suggestion is worth keeping in mind for further development, the status will be changed to “acknowledged.” This is mostly the case with RFEs.</li>
+<li><i>Confirmed</i>: If a reported bug could be reproduced by others, the status will be changed to “confirmed.” This is what usually happens to bug reports.</li>
+<li><i>Assigned</i>: A bug or RFE has been assigned to a developer for fixing it or adding a feature.</li>
+<li><i>Resolved</i>: A bug or RFE has been resolved. That doesn’t necessarily mean a developer wrote any code. If things cannot or need not be fixed, the issue will be resolved as well.</li>
 <li><i>Closed</i>: The end of a life span of a report. If all works well, the issue will finally be closed, and the scary number of reports/requests is a bit smaller.</li>
 </ul>
 <br>
-<h1>How to file a bug report</h1>
-<br>To file a bug report, you have to click on the <i>Report Issue</i> link in your browser. You will be presented a page with lots of fields for entries:
+<h2>Filing a Bug Report</h2>
+<br>To file a bug report, you have to click on the “Report Issue” link in your browser. You will be presented a page with lots of fields for entries:
 <br>
 <table width="100%"><tr><td align="center"><img src="images/Mantis_new_report1.png"/></td></tr></table>
 <br>
-<ul><li><i>Categories</i>: Choose a category you think your report fits best. If you can't find an appropriate category, choose "General."</li>
-<li><i>Reproducibility</i>: If you report a bug, can you reproduce it? How often does it happen? Choose the appropriate degree of frequency. RFEs have the reproducibility "Always," since the feature is always missing, until the issue is resolved.</li>
-<li><i>Select Profile</i>: In your personal preferences you can create user profiles for your reports. This is especially useful if you use more than one operating system or Distribution. You create a profile for each operating system, and if you file a report on an issue that occured on a particular system, you can simply choose the profile instead of inserting the data (Platform, OS, OS Version) by hand all the time.</li>
-<li><i>Platform</i>: Insert your CPU platform (e. g. x86, x86-64, PPC, SPARC)</li>
-<li><i>OS</i>: Your operating system (e.g. Linux, Windows, OS X)</li>
-<li><i>OS Version</i>: e. g. Debian 3.1, SuSE 10.1, Win2000, OS X 10.3</li>
-<li><i>Product Version</i>: Scribus has many incarnations: the stable branch, the developer branch with some more or less stable versions (1.3.xSVN, 1.5SVN etc.). Make sure you choose the right one from the drop down menu.</li>
-<li><i>Product Build</i>: This is especially important if you are using <a href="http://docs.scribus.net/index.php?lang=en&page=install1">SVN versions</a> of Scribus. You find the relevant date in Scribus under <i>Help > About Scribus</i>. The date is very important, because the source code changes almost daily. An issue you report with an older version may very well already be resolved, in which case you will receive the recommendation to try the latest SVN version. <b>Please don't report issues for depracated versions of Scribus.</b></li>
+<ul><li><i>Categories</i>: Choose a category you think your report fits best. If you can’t find an appropriate category, choose “General.’</li>
+<li><i>Reproducibility</i>: If you report a bug, can you reproduce it? How often does it happen? Choose the appropriate degree of frequency. RFEs have the reproducibility “Always,” since the feature is always missing, until the issue is resolved.</li>
+<li><i>Select Profile</i>: In your personal preferences you can create user profiles for your reports. This is especially useful if you use more than one operating system or distribution. You can create a profile for each operating system, and if you file a report on an issue that occured on a particular system, you can simply choose the profile instead of inserting the data (Platform, OS, OS Version) repeatedly all the time.</li>
+<li><i>Platform</i>: Insert your CPU platform (e.g. x86, x86-64, PPC, SPARC) here.</li>
+<li><i>OS</i>: Your operating system (e.g. Linux, Windows, Mac  OS X, OS/2, eCS).</li>
+<li><i>OS Version</i>: e.g. Debian 3.1, OpenSUSE 11.2, Windows XP, OS X 10.5, eCS 1.2</li>
+<li><i>Product Version</i>: Scribus exists in several incarnations, e.g. the stable branch or the developer branch with some more or less stable versions (1.4.xsvn, 1.5svn etc.). Make sure you choose the right one from the drop-down menu.</li>
+<li><i>Product Build</i>: This is especially important if you are using <a href="install1.html">SVN versions</a> of Scribus. Note that you won’t find the relevant date in Scribus under <i>Help > About Scribus</i>, as this string will be updated by the developers only occasionally. The date that matters is the one of your SVN checkout, because the source code changes almost daily. An issue you report with an older version may have already been resolved, in which case you will receive the recommendation to try the latest SVN version. <b>Please don’t report issues for depracated versions of Scribus.</b></li>
 </ul>
 
-<p>If you have finished the preparations, you can finally start writing:</p>
+<p>Once you have finished the preparations, you can finally start writing your report:</p>
 <br>
 <table width="100%"><tr><td align="center"><img src="images/Mantis_new_report2.png"/></td></tr></table>
 <br>
 
-<ul><li><i>Summary</i>: A short description of your report. This will become the "headline" in the bug tracker.</li>
-<li><i>Description</i>: Describe your issue as precisely as possible, but keep it concise. <b>No Novels here!</b> It may also be helpful to upload some screenshots (see below). If you file a feature request, please add a real world scenario. The team needs examples to understand what the idea is and how this new feature would help people to work better and more efficiently. In other words, try to describe not only <i>what</i> and <i>how</i>, but also <i>why</i>.</li>
-<li><i>Steps to reproduce</i>: If you are able to reproduce a bug, please write down the steps necessary for reproduction on other machines.</li>
+<ul><li><i>Summary</i>: A short description of your report. This will become the “headline” in the bug tracker.</li>
+<li><i>Description</i>: Describe your issue as precisely as possible, but keep it concise. <b>Please don’t write any novels here!</b> It may also be helpful to upload some screenshots (see below). If you file a feature request, please add a real world scenario. The team needs examples to understand what the idea is and how this new feature would help people to work better and more efficiently. In other words, try to describe not only <i>what</i> and <i>how</i>, but also <i>why</i>.</li>
+<li><i>Steps to reproduce</i>: If you are able to reproduce a bug, please write down the steps necessary for reproduction on other computers.</li>
 <li><i>Additional information</i>: If you think other information, e.g. postings from the mailing list or messages from a debugger</a>, are useful in this context, you can add them here.</li>
 </ul>
-<br>
-<p>You're almost done now, but you may want to upload a file, a screenshot for instance, or a Scribus sample file. Click <i>Search</i>or enter the path to the file on your hard drive or a URL.</p>
+<p>You’re almost done now, but you may want to upload a file, a screenshot for instance, or a Scribus sample file. Click “Search” or enter the path to the file on your hard drive or a URL.</p>
 <br>
 <table width="100%"><tr><td align="center"><img src="images/Mantis_new_report3.png"/></td></tr></table>
 <br>
-<p>If you don't want a report to be seen by other reporters, but only the team, you can switch the status to "Private." This may be the case if you discover issues with a file that is protected by copyrights. Check "Private," and only a handful of people will see the file.</p><p>Once everything is to your satisfaction, click <i>Submit Report</i>, and you're done.</p>
+<p>If you don’t want a report to be seen by other reporters, but only the developers, you can switch the status to “Private.” This may be the case if you discover issues with a file that is protected by copyrights. Check “Private,” and only a handful of people will see the file.</p><p>Once everything is to your satisfaction, click “Submit Report,” and you’re done.</p>
 
-<h1>Personalised View</h1>
-<p>Provided you are logged in, you can choose a more clearly laid out view of the bugtracker. Click on the link <i>My view</i>, and Mantis will present a structured view of recently changed issues:
+<h2>Personalized View</h2>
+<p>Provided you are logged in, you can choose a more clearly laid out view of the bugtracker. Click on the link “My view,” and Mantis will present a structured view of recently changed issues:
 <br>
 <table width="100%"><tr><td align="center"><img src="images/Mantis_my_view.png"/></td></tr></table>
 <br>

Modified: branches/ScribusOIF/doc/en/cli.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/cli.html
==============================================================================
--- branches/ScribusOIF/doc/en/cli.html (original)
+++ branches/ScribusOIF/doc/en/cli.html Sat Oct  8 18:21:50 2011
@@ -10,15 +10,15 @@
 <p>
 <ul>
 <li><code>-l, --lang xx</code><br>
-Overrides the system locale and runs Scribus in language xx. The language is specified with the same POSIX language codes that are used in the LANG and LC_ALL environment variables. For example, English can be selected with 'en' (generic English), 'en_GB' (British English), 'en_US' (American english), etc. Similarly, German can be selected with 'de' or 'de_DE'.</li>
+Overrides the system locale and runs Scribus in language <code>xx</code>. The language is specified with the same POSIX language codes that are used in the <code>LANG</code> and <code>LC_ALL</code> environment variables. For example, English can be selected with ‘en’ (generic English), ‘en_GB’ (British English), ‘en_US’ (American english), etc. Similarly, reformed German can be selected with ‘de’ or ‘de_DE’, traditional German with ‘de_1901’, and Swiss German with ‘de_CH’.</li>
 <li><code>-la, --langs-available</code><br>
-Print a list of languages for which user interface translations are available. To use that language run Scribus as 'scribus -l xx' where xx is the short language code.</li>
+Prints a list of languages for which user interface translations are available. To use that language run Scribus as <code>scribus -l xx</code> where <code>xx</code> is the short language code.</li>
 <li><code>-v, --version</code><br>
 Prints the Scribus version number and exits.</li>
 <li><code>-f, --file</code><br>
-Open the specified file. It's possible to simply pass the file name as an unqualified argument instead of using this, though if the name begins with a - you will need to use --, eg 'scribus -- -myfile.sla'.</li>
+Opens the specified file. It’s possible to simply pass the file name as an unqualified argument instead of using this, though if the name begins with a dash (<code>-</code>) you will need to use <code>--</code>, e.g., <code>scribus -- -myfile.sla</code>.</li>
 <li><code>-h, --help</code><br>
-Print a brief usage summary.</li>
+Prints a brief usage summary.</li>
 <li><code>-fi, --font-info </code><br>
 Shows the font file listing as Scribus starts. This can be used for diagnosing missing glyphs within fonts or possibly broken font files.</li>
 <li><code>-pi, --profile-info</code><br>
@@ -26,11 +26,11 @@
 <li><code>-ns, --no-splash</code><br>
 Suppresses display of the splash screen during Scribus start-up.</li>
 <li><code>-nns, --never-splash</code><br>
-Stop the showing of the splashscreen on startup. Writes an empty file called .neversplash in ~/.scribus.</li>
+Stops the showing of the splashscreen on startup. Writes an empty file called .neversplash in <code>~/.scribus</code>.</li>
 <li><code>-sb, --swap-buttons</code><br>
-Use right to left dialog button ordering (e.g. Cancel/No/Yes instead of Yes/No/Cancel)</li>
+Uses right to left dialog button ordering (e.g. Cancel/No/Yes instead of Yes/No/Cancel)</li>
 <li><code>-u, --upgradecheck</code> <br>
-Downloads a file from our scribus server indicating latest available versions.</li>
+Downloads a file from our scribus server indicating the latest available versions.</li>
 </ul>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/color1.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/color1.html
==============================================================================
--- branches/ScribusOIF/doc/en/color1.html (original)
+++ branches/ScribusOIF/doc/en/color1.html Sat Oct  8 18:21:50 2011
@@ -15,7 +15,7 @@
 <p>Within Scribus there are several methods to create, import and edit solid colors and color sets. Moreover, Scribus has a well developed tool, the Color Wheel plug-in, which helps with creating color harmonies and even testing them for people with color blindness.</p>
 <h3>Why Color Sets?</h3>
 <p>The answer to the question in the headline is closely related to the answer to a more basic question, namely: “What is a color?” The truth is, there is no simple answer to that question, as a “color” can be described in hundreds of ways, for example as a combination of wavelengths, a combination of color values within a certain “color model”, as a category in a framework based on aesthetical rules etc. As a result, many different so-called “color models” have been developed over the course of time, many of which have become part of a discipline called “color science”, a science that is itself a “meta-science”, as it requires input from many different disciplines, including physics, neuro-science, biology, mathematics, engineering, and even art, artisanry or literature. “Color” is actually one of a few cases, in which artists like Johann Wolfgang von Goethe or Albert Henry Munsell contributed significantly to scientific progress.</p>
-<p>Users of graphics-related programs like Scribus shouldn’t be required to learn the ins and outs of color science, although some theoretical knowledge doesn’t hurt. On a more basic level, however, some awareness of the issues mentioned above certainly helps a lot when working with colors, and the caricature below may be a first step to understand what it’s all about:</p>
+<p>Users of graphics-related programs like Scribus shouldn’t be required to learn the ins and outs of color science, although some theoretical knowledge doesn’t hurt. On a more basic level, however, some awareness of the issues mentioned above certainly helps a lot when working with colors, and the cartoon below may be a first step to understand what it’s all about:</p>
 
 <table width="100%"><tr><td align="center"><img src="images/colrs-caricature.png" title="Color Names – Courtesy of http://www.thedoghousediaries.com" alt="Color Names – Courtesy of http://www.thedoghousediaries.com" /></td></tr></table><br>
 <p>As is often true with good cartoons, there is some relevant truth behind it, in that there are different levels of differentiating and categorizing colors, which are often highly subjective. Imagine two persons, one in the “Girls” column, the other in the “Boys” column, talking on the phone about a color choice for a project – it will be virtually impossible, since both the (subjective) color names and the color perception are quite different. Thus, pre-defined color sets are actually a way to <b><i>communicate</i></b> about colors without referring to either a subjective color model or sophisticated color science, and using meaningful names for colors within a given color set can facilitate communication about colors even further.</p>
@@ -57,7 +57,7 @@
     <tr valign=top>
       <td><img src="images/register.png"></td>
 	<td></td>
-      <td><b>Registration Color</b>: This is a special case of a “color”, which is used for registration marks. The latter are used by printers to determine whether a print run has been successful. While displayed as a CMYK color, it will actually consist of as many colors as there are color separations, one for each printing plate. Each palette can only have one registration color, which is indicated by a “bull’s eye” icon.</td>
+      <td><b>Registration Color</b>: This is a special case of a “color”, which is used for registration marks. The latter are used by printers to determine whether a four-color print run has been successful. While displayed as a CMYK color, it will actually consist of as many colors as there are color separations, one or each printing plate. Each palette can only have one registration color, which is indicated by a “bull’s eye” icon.</td>
       <td></td>
     </tr>
     <tr valign=top>

Modified: branches/ScribusOIF/doc/en/color4.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/color4.html
==============================================================================
--- branches/ScribusOIF/doc/en/color4.html (original)
+++ branches/ScribusOIF/doc/en/color4.html Sat Oct  8 18:21:50 2011
@@ -5,7 +5,7 @@
 </head>
 <body>
 <h2>Color Palettes in Scribus (2): National/Government Standards</h2>
-<p>In some countries the national standard bodies or governments themselves created standardized color sets, i.e., color standards that bidders/tenderers in calls for tenders must comply with. While some of these standards have niche applications, like military vessels or cables, others are considered to be “general purpose” color standards. The Scribus Team has collected and will continue to collect as many of those standards as possible, at least if they aren’t defined as a subset of other color “standards” like Pantone. We hope that this feature will facilitate the use of Scribus in government agencies.</p>
+<p>In some countries the national standard bodies or governments themselves created standardized color sets, i.e., color standards that bidders/tenderers in calls for tenders must comply with. While some of these standards have niche applications, like military vessels or cables, others are considered to be “general purpose” color standards. The Scribus Team has collected and will continue to collect as many of those standards as possible, at least if they aren’t defined as a subset of other color “standards” like Pantone®. We hope that this feature will facilitate the use of Scribus in government agencies.</p>
 <p>To use one of the standards reliably, you are advised to contact the respective government agency or standards organization, as they are selling reference materials like color fans or color chips. In many cases, the reference materials can also be bought from vendors of printing accessories. <b>The colors in the Scribus palettes are only approximations!</b></p><br>
 <table border="1">
   <tbody>
@@ -28,7 +28,7 @@
     <tr>
       <td>AS 2007S-1996</td>
       <td>Australia</td>
-      <td><a href="www.standards.org.au">Standards Australia</a></td>
+      <td><a href="http://www.standards.org.au">Standards Australia</a></td>
       <td>208</td>
       <td>RGB</td>
       <td>Yes</td>

Modified: branches/ScribusOIF/doc/en/images/Scripter.png
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/images/Scripter.png
==============================================================================
Binary files - no diff available.

Modified: branches/ScribusOIF/doc/en/images/docheader1.png
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/images/docheader1.png
==============================================================================
Binary files - no diff available.

Modified: branches/ScribusOIF/doc/en/images/docheader2.png
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/images/docheader2.png
==============================================================================
Binary files - no diff available.

Modified: branches/ScribusOIF/doc/en/images/rf2.png
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/images/rf2.png
==============================================================================
Binary files - no diff available.

Modified: branches/ScribusOIF/doc/en/importhints.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/importhints.html
==============================================================================
--- branches/ScribusOIF/doc/en/importhints.html (original)
+++ branches/ScribusOIF/doc/en/importhints.html Sat Oct  8 18:21:50 2011
@@ -15,7 +15,7 @@
 <p>Another issue with JPEG files is that every time you open and edit them in an image editing program you will lose image data. So if you need to edit a JPEG file, save it in another format, like TIFF, before you start applying any changes.</p>
 <p>Scribus supports a few other formats, but you should avoid them for serious print jobs. These are:</p>
 <ul>
-<li><b>GIF:</b> The GIF format has been created for the early days of the world wide web. It uses compression and only permits a limited number of 256 colors. While it's possible to load a GIF image into an image frame, the format really has no place in professional page layout. This can get really ugly when you try to import a so-called “Animated GIF”. These GIFs work like a flip-book and are comprised of several images that will be subsequently displayed by a <i>broswer</i>. They have no place in professional printing.</li>
+<li><b>GIF:</b> The GIF format has been created for the early days of the world wide web. It uses compression and only permits a limited number of 256 colors. While it's possible to load a GIF image into an image frame, the format really has no place in professional page layout. This can get really ugly when you try to import a so-called “Animated GIF”. These GIFs work like a flip-book and are comprised of several images that will be subsequently displayed by a <i>browser</i>. They have no place in professional printing.</li>
 <li><b>XPM:</b> This is an old bitmap format used for icons in the X Window System. Like GIF, it only supports up to 256 colors.</li>
 <li><b>BMP:</b> A bitmap format used by Windows and OS/2 for graphical user faces. Unlike GIF or XPM it can contain up to 32 bit per pixel and supports transparency. Due to its simplicity, the BMP format is wide-spread and can be read/written by most image editors. Unfortunately, the lack of a compression algorithm leads to comparatively huge file sizes, and BMP data may cause problems with commercial RIPs (Raster Image Processors).</li>
 <li><b>If you are preparing a PDF or PostScript file for commercial printing, convert any of these file types to a more reliable format, like TIFF or PNG.</b></li>

Modified: branches/ScribusOIF/doc/en/importhints2.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/importhints2.html
==============================================================================
--- branches/ScribusOIF/doc/en/importhints2.html (original)
+++ branches/ScribusOIF/doc/en/importhints2.html Sat Oct  8 18:21:50 2011
@@ -8,7 +8,7 @@
 <h3>Supported formats</h3>
 <p>Here’s a short description of the vector formats currently supported by Scribus:</p>
 <ul>
-<li><b>AI (Adobe Illustrator)</b>: The native format of Illustrator, or, more precisely, formats. Older versions of AI are basically EPS files that contain some additional features only used by Illustrator. As of Illustrator 9, AI is based on PDF, and, like its predecessor, adds some Illustrator-only information. AI import is still experimental but works very well in most cases. One of the major advantages of the AI import filter (and the EPS filter as well) is that Scribus will load spot colors in AI and EPS files correctly. If PDF-based AI files are opened directly (via <i>File > Open</i>), Scribus will also import AI/PDF layers.</li>
+<li><b>AI (Adobe Illustrator)</b>: The native format of Illustrator, or, more precisely, formats. Older versions of AI are basically EPS files that contain some additional features only used by Illustrator. As of Illustrator 9, AI is based on PDF, and, like its predecessor, adds some Illustrator-only information. AI import is still experimental but works very well in most cases. One of the major advantages of the AI import filter (and the EPS filter as well) is that Scribus will load spot colors in AI and EPS files correctly. If PDF-based AI files are opened directly (via <i>File > Open</i>), Scribus will also import <a href="layers.html">AI/PDF layers</a>.</li>
 <li><b>EPS (Encapsulated PostScript)</b>: Probably the most wide-spread graphics format in pre-press and a subset of the PostScript standard. See the section about <a href="importhints1.html">EPS import</a> for more information.</li>
 <li><b>PS (PostScript)</b>: A page description language created by Adobe Systems and the foundation of almost all modern print workflows. The PDF format is also derived from PostScript. Since PostScript files can contain more than one page, import may not deliver the expected result.</li>
 <li><b>FIG (Xfig)</b>: This is the native format of the UNIX drawing veteran Xfig. While rarely used by designers, it’s ubiquitous in scientific environments like universities for technical drawings or diagrams. The format is well-documented, and import into Scribus works flawlessly.</li>
@@ -61,6 +61,17 @@
 <p>If you delete an imported drawing, its colors won’t disappear from the color list automatically, as it’s difficult to determine whether they have been “mapped” or are being used by other objects. This is not a problem, because after deleting the drawing, you can open the color manager (<i>Edit > Colors</i>) and click “Remove Unused”, which will remove all colors that aren’t used by any item in your document.</p>
 <p>An example for the usefulness of the color import is the “Replace Colors” feature. Imagine you are working with a vector logo that is supposed to appear in different colors in different documents. By using “Replace Colors”, you can work with one single source file. Import the logo into your document and replace one or more logo colors just as your specific document requires. And speaking of logos: These are often required to use a spot color. If you created or edited the logo in a program that doesn’t support spot colors, you can load the graphic into Scribus and use “Replace Colors” to replace a CMYK or RGB color with a spot color:</p><br>
 <table width="100%"><tr><td align="center"><img src="images/new5.png" title="Replacing colors" alt="Replacing colors"/></td></tr></table><br>
-
+<hr>
+<p>See also</p>
+<ul>
+<li><a href="WwShapes.html">Working with Shapes</a></li>
+<li><a href="EditingShapes.html">Editing Shapes</a></li>
+<li><a href="WwLines.html">Working with Lines and Line Styles</a></li>
+<li><a href="color1.html">Editing Colors</a></li>
+<li><a href="importhints1.html">Importing EPS</a></li>
+<li><a href="scribus-svg.html">Importing SVG</a></li>
+<li><a href="importhints3.html">Importing OpenOffice.org and ODF Files</a></li>
+</ul>
+</p>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/importhints3.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/importhints3.html
==============================================================================
--- branches/ScribusOIF/doc/en/importhints3.html (original)
+++ branches/ScribusOIF/doc/en/importhints3.html Sat Oct  8 18:21:50 2011
@@ -11,7 +11,7 @@
 <br>
 The clear documentation and specs have helped the Scribus Team to create some useful import features, which will be enhanced in the future.</p>
 <h4>Importing OpenOffice.org Writer and OpenDocument files</h4>
-<p>The importer for Writer (SXW) and ODT documents works per text frame and imports <i>only</i> the text contained in your document. Images and drawings need to be saved separately outside of the Writer document and then each drawing or image can be imported individually. Thus, a compound Writer document with tables or charts will not import the latter. Tables, charts or other embedded objects, need to be placed into their own Draw file and exported as described below.</p>
+<p>The importer for Writer (SXW) and ODT documents works per text frame and imports <i>only</i> the text contained in your document. Images and drawings need to be saved separately outside of the Writer document and then each drawing or image can be imported individually. Thus, a compound Writer document with tables or charts will not import the latter. Tables, charts or other embedded objects need to be placed into their own Draw file and exported as described below.</p>
 <p>The single most important issue to take into consideration for hassle-free SXW/ODT import is well chosen usage of styles in Writer or any other ODT-compliant word processor. Doing so will greatly reduce the amount of time needed within Scribus to format and style text. Any special paragraph styles in your Writer or ODT file will automatically be imported into your existing Scribus document.</p>
 
 <h4>SXW/ODT import step by step</h4>
@@ -22,7 +22,7 @@
 </ol>
 
 <p>This will import <i>all</i> the text from the source document, so ensure there is enough space in your frame or link extra text frames to the one you are importing into. You can comfortably import 10, 20 or even 50 pages of text in one go. However, the practical limit is probably not more than a chapter’s (15–30 pages) worth of text for performance reasons.</p>
-<h4>Let Scribus create text frames for you</h4>
+<h4><a name="1">Let Scribus create text frames for you</h4>
 <p>If you have an idea how many text frames you will need for the imported text, you can use an advanced import option. You can find it in the “Insert” menu, and it’s called <i>Frame ...</i>.</p>
 <p>The “Insert Frame” dialog consists of four tabs. In the first one you have to select “Text Frame” in this context. In the second tab, “Location”, you can determine the pages, on which the new frames will be placed, as well as their position on a page.</p>
 
@@ -43,15 +43,15 @@
 
 <h4>SXW/ODT import options</h4>
 
-<p> When importing text from OO.org there are three important options which need to be carefully considered:</p>
+<p> When importing text from OO.org there are four important options which need to be carefully considered:</p>
 
 <table width="100%"><tr><td align="center"><img src="images/oogettext1.png" alt="Import Options for OO.org Writer and OASIS (Open Document) files." align="middle" title="Import Options for SXW and ODT files." /></td></tr></table>
 
 <ul>
-   <li><b>Overwrite Paragraph Styles</b> This option will tell Scribus to change the formatting of any created styles in your Scribus document to follow those in the imported document. </li>
-   <li><b>Merge Paragraph Styles</b> This option looks at the actual attributes (fonts, size) of the imported document and merges styles which have identical attributes. This can help to eliminate differently named, but otherwise identical styles.</li>
-   <li><b>Use Document Name as a prefix for paragraph styles</b> is self-explanatory. This can be useful for sorting styles when importing from several documents. </li>
-<li><b>Do Not Ask Again</b>  Caution! This last option will make your choices above permanent. The only way to undo this is to open the file <code>prefs135.xml</code> in the hidden folder <code>./scribus</code> in your home directory with a text editor, then search for the text string <code>attribute key"=ask-Again" value=0</code> and replace the 0 with 1.</li>
+   <li><b>Overwrite Paragraph Styles</b>; This option will tell Scribus to change the formatting of any created styles in your Scribus document to follow those in the imported document. </li>
+   <li><b>Merge Paragraph Styles</b>: This option looks at the actual attributes (fonts, size) of the imported document and merges styles which have identical attributes. This can help to eliminate differently named, but otherwise identical styles.</li>
+   <li><b>Use Document Name as a prefix for paragraph styles</b>: is self-explanatory. This can be useful for sorting styles when importing from several documents. </li>
+<li><b>Do Not Ask Again</b>: Caution! This last option will make your choices above permanent. The only way to undo this is to open the file <code>prefs14.xml</code> in the hidden folder <code>./scribus</code> in your home directory with a text editor, then search for the text string <code>attribute key"=ask-Again" value=0</code> and replace the 0 with 1.</li>
  </ul>
 
 
@@ -83,5 +83,14 @@
 
 <h4>Importing SXM and ODF formulas</h4>
 <p>The most reliable way is to create a formula In OpenOffice.org Math and save it as SXM or ODF. Then open OpenOffice.org Draw and create a new file. Use <i>Insert Object > Formula</i>. You will have a tiny embedded square on Draw’s canvas. Next, open <i>Edit Object</i> from the context menu. Draw will now launch Math. In Math, select <i>Tools > Import Formula</i>, browse to your saved formula and save to close the file. The embedded formula is now editable as a vector object. Save this Draw file, then export as EPS and import into Scribus. The formulas and text will import as scalable vector items. This will result in formulas which will print with <b>very</b> high quality and no worries when exported as PDF. Saving the Draw file and attempting to import the Draw file with embedded objects will fail, as Scribus cannot access those objects directly.</p>
+
+<hr>
+<p>See also</p>
+<ul>
+<li><a href="WwText.html">Working with Text</a></li>
+<li><a href="WwStyles.html">Working with Styles</a></li>
+<li><a href="importhints2.html">Importing Vector Drawings</a></li>
+</ul>
+</p>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/importhints4.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/importhints4.html
==============================================================================
--- branches/ScribusOIF/doc/en/importhints4.html (original)
+++ branches/ScribusOIF/doc/en/importhints4.html Sat Oct  8 18:21:50 2011
@@ -52,5 +52,11 @@
 <p>Below is the imported text displayed on the canvas:</p>
 <table width="100%"><tr><td align="center"><img src="images/htmlimport.png" alt="HTML imported into Scribus"  title="HTML imported into Scribus " /></td></tr></table>
 <p>Not all applications export HTML with high fidelity to the W3C specifications. You can use htmltidy to clean up and make conformant HTML text you need to import. See : <a href=" http://w3c.org"> http://w3c.org</a>
+<hr />
+<p>See also:</p>
+<ul>
+<li><a href="WwStyles.html">Working with Styles</a></li>
+</ul>
+</p>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/index.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/index.html
==============================================================================
--- branches/ScribusOIF/doc/en/index.html (original)
+++ branches/ScribusOIF/doc/en/index.html Sat Oct  8 18:21:50 2011
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
 <title>Scribus – Open Source Desktop Publishing</title>
 </head>
-<table border="0" cellspacing="0" cellpadding="0" width="100%" bgcolor="#2780b9" >
+<table border="0" cellspacing="0" cellpadding="0" width="100%" bgcolor="#183867" >
 	<tr>
 		<td align="left"><img src="images/docheader1.png" width="222" height="87"></td>
 		<td align="right"><img src="images/docheader2.png" width="318" height="87"></td>
@@ -15,7 +15,7 @@
 
 <!--marker for image gallery-->
 
-<p>Welcome to Scribus, a page layout program for Linux/UNIX, Mac OS X, OS/2 Warp 4, eComStation and Windows desktops.</p>
+<p>Welcome to Scribus, a page layout program for Linux/UNIX, Mac OS X, OS/2 Warp 4, eComStation and Windows.</p>
 
 <p>Since its humble beginning in the spring of 2001, Scribus has rapidly evolved into one of the premier Open Source desktop applications. Encouraged by professionals and beginners alike, the Scribus Team, supported by a large and constantly growing number of enthusiastic contributors from all over the world, is dedicated to develop and improve “one of the most powerful and useful open-source projects out there” (TechRepublic).</p>
 

Modified: branches/ScribusOIF/doc/en/keys.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/keys.html
==============================================================================
--- branches/ScribusOIF/doc/en/keys.html (original)
+++ branches/ScribusOIF/doc/en/keys.html Sat Oct  8 18:21:50 2011
@@ -5,11 +5,10 @@
 </head>
 <body>
 <h2>Keyboard Shortcut Settings</h2>
-<p>In Scribus 1.3.x, the keyboard shortcuts are completely revised. There is still some ongoing work, so the most updated information is here: </p>
-<a href="http://wiki.scribus.net/index.php/Keyboard_Shortcuts_by_Key">http://wiki.scribus.net/index.php/Keyboard_Shortcuts_by_Key</a>
-<p>See also: <a href="mouse.html">Mouse Usage Hints</a><strong> Note:</strong> Keyboard Short Cuts are completely customizable and can be exported for use on other machines under the Keyboard Preferences.</p>
-
-<h3> Default Keyboard Shortcuts for Scribus 1.3.x </h3>
+<p>In Scribus 1.4.x, the keyboard shortcuts have been completely revised, and there is still some ongoing work.</p>
+<p>See also: <a href="mouse.html">Mouse Usage Hints</a><strong> Note:</strong> Keyboard Short Cuts are completely customizable and can be exported for use on other machines under the Keyboard <a href="settings1.html">Preferences</a>.</p>
+
+<h3> Default Keyboard Shortcuts for Scribus 1.4.x </h3>
 
 <h3> Function Keys </h3>
 <table >

Modified: branches/ScribusOIF/doc/en/layers.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/layers.html
==============================================================================
--- branches/ScribusOIF/doc/en/layers.html (original)
+++ branches/ScribusOIF/doc/en/layers.html Sat Oct  8 18:21:50 2011
@@ -10,7 +10,7 @@
 <p>To add a new layer, open the Layers dialog under <i>Windows > Layers</i> or press F6:</p>
 
 <table width="100%"><tr><td align="center"><img src="images/layers1.png" title="The Layers Dialog" alt="The Layers Dialog" /></td></tr></table><br />
-<p>At first glance, the dialog looks simple, but it’s very powerful. At the top you can set a blend mode and layer opacity. These will be discussed elsewhere.</p>
+<p>At first glance, the dialog looks simple, but it’s very powerful. At the top you can set a blend mode and layer opacity.</p>
 <p>At the bottom of the dialog we have the basic layer management tools available, from left to right:
 <ul>
 <li>Adding a new layer</li>
@@ -52,7 +52,7 @@
       <td align="center"><img src="images/layers2.png" title="The Layers Dialog" alt="The Layers Dialog" /></td>
     </tr>
     <tr>
-      <td><div align="center"><i>Layers and their settings in Adobe Reader (right) and Scribus (left)</i></div></td>
+      <td><div align="center"><i>Layers and their settings in Adobe Reader (left) and Scribus (right)</i></div></td>
     </tr>
   </tbody>
 </table>

Modified: branches/ScribusOIF/doc/en/menu.xml
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/menu.xml
==============================================================================
--- branches/ScribusOIF/doc/en/menu.xml (original)
+++ branches/ScribusOIF/doc/en/menu.xml Sat Oct  8 18:21:50 2011
@@ -8,6 +8,21 @@
 			<submenuitem text="About the team" file="about1.html"/>
 			<submenuitem text="Specifications" file="specs.html"/>
 		</submenuitem>
+		<submenuitem text="Installation" file="install.html">
+			<submenuitem text="Scribus Source & SVN" file="install1.html"/>
+			<submenuitem text="Requirements" file="install2.html"/>
+			<submenuitem text="Compiling using CMake" file="install4.html"/>
+			<submenuitem text="Compiling using CMake on OS X" file="install5.html"/>                     
+			<submenuitem text="Parallel Install" file="parallel-install.html"/>
+			<submenuitem text="Debian dpkg Information" file="install-dpkg.html"/>
+		</submenuitem>
+		<submenuitem text="Cross Platform" file="cross-platform.html">
+			<submenuitem text="Mac OSX Readme" file="readme-macosx.html"/>
+			<submenuitem text="Mac OSX/Fink" file="machints1.html"/>
+			<submenuitem text="Mac OSX/Fink & SVN" file="machints2.html"/>
+			<submenuitem text="OS/2 Readme" file="readme-os2.html"/>
+			<submenuitem text="Windows Readme" file="readme-win32.html"/>
+		</submenuitem>
 		<submenuitem text="Setup" file="config.html">
 			<submenuitem text="Configuring Scribus" file="settings1.html"/>
 			<submenuitem text="Keyboard Shortcuts" file="keys.html"/>
@@ -15,11 +30,6 @@
 			<submenuitem text="Hyphenation" file="hyphenator.html"/>
 			<submenuitem text="Font Setup" file="fonts1.html"/>
 			<submenuitem text="Fonts in Depth" file="fonts2.html"/>
-			<submenuitem text="GS Fonts" file="gsfont.html"/>
-			<submenuitem text="Non-Latin Fonts" file="fonts3.html"/>
-			<submenuitem text="Basic Font Tests" file="fonts4.html"/>
-			<submenuitem text="Basic Font Tests 2" file="fonts5.html"/>
-			<submenuitem text="Fonts Setup Win32" file="fonts-win32.html"/>
 		</submenuitem>
 		<submenuitem text="Scribus Basics" file="about2.html" >
 			<submenuitem file="qsg.html" text="Quick Start Guide" />
@@ -31,8 +41,8 @@
 			<submenuitem file="WwImages.html" text="Working with Images" />
 			<submenuitem file="WwRenderframes.html" text="Working with Render Frames" />
 			<submenuitem file="WwShapes.html" text="Working with Shapes" />
+			<submenuitem file="multiple_transform.html" text="Multiple Duplicate and Transform" />
 			<submenuitem file="EditingShapes.html" text="Editing Shapes" />
-			<submenuitem file="multiple_transform.html" text="Multiple Duplicate and Transform" />
 			<submenuitem file="WwLines.html" text="Working with Lines and Line Styles" />
 			<submenuitem file="WwFill.html" text="Working with Fill: Colors, Gradients and Patterns" />
 			<submenuitem text="Working with Layers" file="layers.html" />
@@ -76,32 +86,29 @@
 		</submenuitem>
 		<submenuitem text="DTP ToolBox" file="toolbox.html">
 			<submenuitem text="Adobe Reader" file="toolbox1.html"/>
-			<submenuitem text="Other PDF Viewers" file="toolbox2.html"/>
-			<submenuitem text="Batik" file="toolbox3.html"/>
-			<submenuitem text="GIMP" file="toolbox4.html"/>
+			<submenuitem text="PDF/PostScript Tools" file="toolbox2.html"/>
 			<submenuitem text="Ghostscript" file="toolbox5.html"/>
 			<submenuitem text="GSview" file="toolbox6.html"/>
 			<submenuitem text="Advanced Ghostscript & GSView" file="toolbox7.html"/>
+			<submenuitem text="GIMP" file="toolbox4.html"/>
+			<submenuitem text="Krita" file="toolbox15.html"/>
+			<submenuitem text="XnView" file="toolbox13.html"/>
 			<submenuitem text="ImageMagick" file="toolbox8.html"/>
 			<submenuitem text="Inkscape" file="toolbox9.html"/>
-			<submenuitem text="KSnapshot" file="toolbox10.html"/>
-			<submenuitem text="Tracing Tools" file="toolbox11.html"/>
-			<submenuitem text="WINE" file="toolbox12.html"/>
-			<submenuitem text="XnView" file="toolbox13.html"/>
+			<submenuitem text="Squiggle" file="toolbox3.html"/>
 			<submenuitem text="LProf" file="toolbox14.html"/>
-			<submenuitem text="Krita" file="toolbox15.html"/>
 			<submenuitem text="Fontmatrix" file="toolbox16.html"/>
 			<submenuitem text="SwatchBooker" file="toolbox17.html"/>
 		</submenuitem>
 		<submenuitem text="Hints & FAQs" file="topten.html">
 			<submenuitem text="Help" file="faq1.html"/>
 			<submenuitem text="Development" file="faq3.html"/>
-			<submenuitem text="Problems with Document Files" file="fileproblems.html"/>
 		</submenuitem>
 	</area>
 	<area text="My Tutorials" file="tutorials.html" section="tutorials">
 	</area>
 	<area text="For Developers" file="developers.html">
+		<submenuitem text="Scribus Document Format" file="scribusfileformat.html"/>
 		<submenuitem text="Scripter" file="scripter1.html"/>
 		<submenuitem text="Scripter FAQ" file="scripter-faq.html"/>
 		<submenuitem text="Scripter API" file="scripterapi.html">
@@ -124,6 +131,11 @@
 			<submenuitem text="Scripter Extensions" file="scripter-extensions.html"/>
 			<submenuitem text="Scripter Extensions API" file="scripterapi-extensions.html"/>
 		</submenuitem>
+		<submenuitem text="Plugin Howto" file="plugin_howto.html"/>
+		<submenuitem text="GetText Howto" file="gettexthowto.html"/>
+		<submenuitem text="Coding Standards" file="codingstandards.html"/>
+		<submenuitem text="Translation Howto" file="translation_howto.html"/>
+		<submenuitem text="Lorem ipsum Howto" file="lipsum.html"/>
 	</area>
 	<area text="Other Information" file="otherinfo.html">
 		<submenuitem text="Community" file="resources.html"/>
@@ -131,6 +143,7 @@
 		<submenuitem text="Mailing Lists" file="mailing_lists.html"/>
 		<submenuitem file="irc.html" text="IRC"/>
 		<submenuitem text="Printers" file="scprinters.html"/>
+		<submenuitem text="Download" file="download.html"/>
 		<submenuitem text="Contributions" file="contributions.html"/>
 		<submenuitem text="Release History" file="releases.html"/>
 		<submenuitem text="Scribus Copyright" file="scribuscopyright.html"/>

Modified: branches/ScribusOIF/doc/en/renderframes.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/renderframes.html
==============================================================================
--- branches/ScribusOIF/doc/en/renderframes.html (original)
+++ branches/ScribusOIF/doc/en/renderframes.html Sat Oct  8 18:21:50 2011
@@ -1,255 +1,137 @@
 <body>
 <head><TITLE>Render Frames</TITLE></head>
 <body>
-<h1>Introduction</h1>
-<p>Since version 1.3.5 Scribus contains a powerful new feature called
-Render Frames. Originally planned as a means to insert formulas into
-Scribus documents, the inventor, Hermann Kraus, has enabled the
-creation of almost any kind of special typesetting, like formulas,
-musical notation or chess notation, from within Scribus. The trick here is that Scribus uses other programs in the background. It imports their output into a special frame type called <b>Render Frames</b>.</p>
-<p>While this feature is extremely versatile, you must not forget
-that the use of it requires knowledge of the markup codes
-required by a particular program. These commands are beyond the scope
-of the Scribus documentation.</p>
-<h1>Creating a Render Frame</h1>
-<p>To create a Render Frame, click on the Render Frame icon in the
-menu bar, use <i>Insert > Render Frame</i>, or press D on the
-keyboard:</p>
+<h2>Introduction</h2>
+<p>Since version 1.3.5 Scribus offers a powerful new feature called Render Frames. Originally planned as a means to insert formulas into
+Scribus documents, the inventor, Hermann Kraus, has enabled the creation of almost any kind of special typesetting, like formulas, musical notation or chess notation, from within Scribus. The trick here is that Scribus uses other programs in the background and imports their output into a special frame type called <b>Render Frames</b>.</p>
+<p>While this feature is extremely versatile, you must not forget that the use of it requires knowledge of the markup codes required by a particular program. These commands are beyond the scope of the Scribus documentation.</p>
+<h2>Creating a Render Frame</h2>
+<p>To create a Render Frame, click on the Render Frame icon in the menu bar, use <i>Insert > Render Frame</i>, or press D on the keyboard:</p>
 <table width="100%"><tr><td align="center"><img src="images/rf2.png"/></td></tr></table>
 <p>The cursor will then turn into a frame symbol with an L inside:</p>
 <table width="100%"><tr><td align="center"><img src="images/DrawLatexFrame.png"/></td></tr></table>
 <p><br><br>
 </p>
-<p>The next step is to click-drag the frame and let up, just like you would do
-with a text frame. By default, Scribus will display a welcome
-message, which indicates that at least the configuration for LaTeX is
-correct. What you see below is the output from LaTeX, rendered in Scribus.
-The welcome message will be displayed in the language of the user
-interface as set in <i>File > Preferences</i>. If no translation
-of the message is available, you will see the English version:</p>
+<p>The next step is to click-drag the frame and let up, just like you would do with a text frame. By default, Scribus will display a welcome message, which indicates that at least the configuration for LaTeX is correct. What you see below is the output from LaTeX, rendered in Scribus. The welcome message will be displayed in the language of the user interface as set in the <a href="settings1.html#1">Preferences</a>. If no translation of the message is available, you will see the English version:</p>
 <table width="100%"><tr><td align="center"><img src="images/rf3.png"/></td></tr></table>
-<p>The
-screenshot above has been made with the default resolution of 72 dpi,
-which, obviously, isn't enough for printing. You can easily change
-the resolution as you'll learn below.</p>
+<p>The screenshot above has been made with the default resolution of 72 dpi, which, obviously, isn’t enough for printing. You can easily change the resolution as you’ll learn below.</p>
 <h1>Editing Render Frames</h1>
-<p>If
-you right-click on a Render Frame, the context menu shows an entry
-called "Edit Source:"</p>
+<p>If you right-click on a Render Frame, the context menu shows an entry called “Edit Source:”</p>
 <table width="100%"><tr><td align="center"><img src="images/rf4.png"/></td></tr></table>
-<p>Selecting it brings up the "heart" of the Render Frame, the
-editor:</p>
+<p>Selecting it brings up the “heart” of the Render Frame, the editor:</p>
 <table width="100%"><tr><td align="center"><img src="images/rf5.png"/></td></tr></table>
-<p>In Scribus 1.3.5, the editor is preconfigured to use LaTeX,
-Lilypond, gnuplot, dot/GraphViz and POV-Ray.</p>
-<p>To the left you see a field with the caption "Enter Code."
-Here you can insert the markup code for the output you want from the
-external program. For preconfigured renderers Scribus is shipped with some simple code snippets that will enable you to test if the respective programs are installed and configured properly. As you can see, the editor provides syntax
-highlighting.</p>
-<p>The "Update" button beneath the text field will update the
-content of the Render Frame, so that you can visually check the
-results of changes you made to the markup text without closing the editor. "Revert" will
-revert any change you made to the text. Please be aware that once you started editing the text, it's no longer possible to change the markup renderer, e.g., if you started editing LaTeX sourcecode, you cannot switch to Lilypond anymore.</p>
-<p>To the right you see a row of tabs. These are not available for
-all preconfigured markup languages, so sometimes the editor only shows the
-"Options" tab. 
+<p>In Scribus 1.4, the editor is preconfigured to use LaTeX, Lilypond, gnuplot, dot/GraphViz and POV-Ray.</p>
+<p>To the left you see a field with the caption “Enter Code.” Here you can insert the markup code for the output you want from the external program. For preconfigured renderers Scribus is shipped with some simple code snippets that will enable you to test whether the respective programs are installed and configured properly. As you can see, the editor provides syntax highlighting.</p>
+<p>The “Update” button beneath the text field will update the content of the Render Frame, so that you can visually check the results of changes you made to the markup text without closing the editor. “Revert” will revert any change you made to the text. Please be aware that once you started editing the text, it’s no longer possible to change the markup renderer, e.g., if you started editing LaTeX source code, you cannot switch to Lilypond anymore.</p>
+<p>To the right you see a row of tabs. These are not available for all preconfigured markup languages, so sometimes the editor only shows the “Options” tab. 
 </p>
-<p>In the "Options" tab, the first entry is "Resolution." Its
-default setting is "Automatic," thus, 72 dpi as explained above.
-You can easily change the resolution of the output to something more
-suitable for printing.</p>
-<p>"Program" shows the list of supported programs. The editor
-will list all programs that are configured in <I>File >
-Preferences> External Tools</I>.</p>
-<p>If you check "Use Preamble," the editor will automatically use
-the preamble and the postamble as specified in the XML configuration
-files. See below for more details.</p>
-<p>"Program Messages" shows the messages that would otherwise be
-displayed in a command-line interpreter. They are "intercepted"
-by Scribus, just like the final output, and they are often useful to
-find out what went wrong if the rendering failed.</p>
-<p>If you click on "Run external editor," Scribus will start the
-editor as specified in <i>File > Preferences</i>,
-and "Kill Program" will stop the external program. This can be
-useful when the external program stumbles across an error you made in
-your markup that causes the external program to fail or even crash.</p>
-<h1>Preconfigured Programs</h1>
-<h2>LaTeX</h2>
+<p>In the “Options” tab, the first entry is “Resolution.” Its default setting is “Automatic,” thus, 72 dpi as explained above. You can easily change the resolution of the output to something more suitable for printing.</p>
+<p>“Program” shows the list of supported programs. The editor will list all programs that are configured in <I>File > Preferences> External Tools</I>.</p>
+<p>If you check “Use Preamble,” the editor will automatically use the preamble and the postamble as specified in the XML configuration files. See below for more details.</p>
+<p>“Program Messages” shows the messages that would otherwise be displayed in a command-line interpreter. They are “intercepted” by Scribus, just like the final output, and they are often useful to find out what went wrong if the rendering failed.</p>
+<p>If you click on “Run external editor,” Scribus will start the editor as specified in the Preferences, and “Kill Program” will stop the external program. This can be useful when the external program stumbles across an error you made in your markup that causes the external program to fail or even crash.</p>
+<h2>Preconfigured Programs</h2>
+<h3>LaTeX</h3>
 <table width="100%"><tr><td align="center"><img src="images/rf6.png"/></td></tr></table>
-<p>The first LaTeX tab is called
-"Fonts/Headers." In the upper drop-down list you can set the font
-used for a Render Frame that uses LaTeX. By default, only four fonts
-are listed, but you can easily add more by editing the LaTeX XML
-configuration file as described in detail below: Just add another font under <code><list name="font"
-default=""></code> in the file. Please note that the font list
-for LaTeX (and many other markup programs) is completely different
-from the fonts available to you in Scribus and other programs, as
-LaTeX uses its own fonts and needs to be configured to use the Type 1, TrueType and OpenType fonts available to you in programs like
-Scribus or OpenOffice.org. For more information about LaTeX font configuration see the <a href="http://www.latex-project.org/guides/fntguide.pdf">LaTeX Font Selection Guide (PDF)</a>.</p>
-<p>The next drop-down list allows
-for changing the default font size. If you are used to LaTeX, you
-will already know that this is the setting for the base font. Other
-necessary font sizes, e.g. for superscript and subscript are
-determined by LaTeX. You will also note that the editor lists only a
-selection of base font sizes. Again, you can easily add other sizes
-under <code><list name="fontsize" default="11pt"></code>
-in the LaTeX XML configuration file. Since there are almost no limits
-as to the possibilities you have for the configuration of a LaTeX
-file, you will appreciate the option to select different XML
-configuration files in <i>File > Preferences > External
-Tools</i>.</p>
-<p>The text field "Additional
-Headers" allows for the insertion of additional headers to the
-preamble of the LaTeX markup, which will be stored within the Scribus sla
-file.</p>
-<p>Finally, you find different tabs
-with symbols and characters that can be created by LaTeX:</p>
+<p>The first LaTeX tab is called “Fonts/Headers.” In the upper drop-down list you can set the font used for a Render Frame that uses LaTeX. By default, only four fonts are listed, but you can easily add more by editing the LaTeX XML configuration file as described in detail below: Just add another font under <code><list name="font" default=""></code> in the file. Please note that the font list for LaTeX (and many other markup programs) is probably completely different from the fonts available to you in Scribus and other programs, as LaTeX uses its own fonts and needs to be configured to use the Type 1, TrueType and OpenType fonts available to you in programs like Scribus or LibreOffice. For more information about LaTeX font configuration see the <a href="http://www.latex-project.org/guides/fntguide.pdf">LaTeX Font Selection Guide (PDF)</a>.</p>
+<p>The next drop-down list allows for changing the default font size. If you are used to LaTeX, you will already know that this is the setting for the base font. Other necessary font sizes, e.g. for superscript and subscript are determined by LaTeX. You will also note that the editor lists only a
+selection of base font sizes. Again, you can easily add other sizes under <code><list name="fontsize" default="11pt"></code>
+in the LaTeX XML configuration file. Since there are almost no limits as to the possibilities you have for the configuration of a LaTeX file, you will appreciate the option to select different XML configuration files in <i>File > Preferences > External Tools</i>.</p>
+<p>The text field “Additional Headers” allows for the insertion of additional headers to the preamble of the LaTeX markup, which will be stored within the Scribus SLA file.</p>
+<p>Finally, you find different tabs with symbols and characters that can be created by LaTeX:</p>
 <table width="100%"><tr><td align="center"><img src="images/rf7.png"/></td></tr></table>
-<p>To
-insert a single symbol into your markup code, you can either select
-the symbol and click "Insert Symbol" or double-click on the icon
-in the field.</p>
+<p>To insert a single symbol into your markup code, you can either select the symbol and click “Insert Symbol” or double-click on the icon in the field.</p>
 <p>For more information see the <a href="http://www.latex-project.org/">official LaTeX website</a>.</p>
 
-<h2>Lilypond</h2>
+<h3>Lilypond</h3>
 
 <table width="100%"><tr><td align="center"><img src="images/lilyp.png"/></td></tr></table>
 
-There are no additional options for Lilypond available.
+<p>There are no additional options for Lilypond available.</p>
 <p>For more information see the <a href="http://lilypond.org/web/">official Lilypond website</a>.</p>
 
-<h2>gnuplot</h2>
+<h3>gnuplot</h3>
 
 <table width="100%"><tr><td align="center"><img src="images/plot1.png"/></td></tr></table>
 <br></br>
-The gnuplot options are very basic. Under <i>Ranges</i> you can enter the start and end digits for the x- and the y-axis. The default is an asterisk, which will result in gnuplot creating the digits automatically, according to the values set in the markup text.
+<p>The gnuplot options are very basic. Under “Ranges” you can enter the start and end digits for the X and the  Y axis. The default is an asterisk, which will result in gnuplot creating the digits automatically, according to the values set in the markup text.</p>
 <br></br>
 <table width="100%"><tr><td align="center"><img src="images/plot2.png"/></td></tr></table>
 <br></br>
-The tab called <i>Labels</i> serves as an assistant to determine some visual aspects of a graph:
+<p>The tab called “Labels” serves as an assistant to determine some visual aspects of a graph:</p>
 
 <ul>
-<li><i>Title</i> will create a title for your graph, which will be placed at the top of the rendered image.</li>
-<li><i>X-Label</i> and <i>Y-Label</i> will create captions for the x- and y-axis.</li>
-<li><i>Grid</i> and <i>Grid layer</i> work similiar to the guides/page grid settings in Scribus, except that the grid in the graph will become part of the rendered image. You can choose between no grid at all, the major grid ("Major ticks only") and major plus minor grid ("Major and minor ticks"). Just like in Scribus you can also decide to have the grid rendered in the background or in the foreground.</li>
-<li><i>Zero axis</i> will create a dotted line to indicate either the x- or the y-axis, or both. Note that using any grid will make the setting of any zero axis unnecessary, as both use the same colour. If you want to use a different line style for grid and the axes, you have to do this in the markup text. Likewise, adding a z-axis requires the editing of the graph's source code.</li>
+<li>“Title” will create a title for your graph, which will be placed at the top of the rendered image.</li>
+<li>“X-Label” and “Y-Label” will create captions for the X and Y axis.</li>
+<li>“Grid” and “Grid Layer” work similiar to the guides/page grid settings in Scribus, except that the grid in the graph will become part of the rendered image. You can choose between no grid at all, the major grid (“Major ticks only”) and major plus minor grid (“Major and minor ticks”). Just like in Scribus you can also decide to have the grid rendered in the background or in the foreground.</li>
+<li>“Zero axis” will create a dotted line to indicate either the X or the Y axis, or both. Note that using any grid will make the setting of any zero axis unnecessary, as both use the same color. If you want to use a different line style for grid and the axes, you have to do this in the markup text. Likewise, adding a Z axis requires the editing of the graph’s source code.</li>
 </ul>
 
 <p>For more information see the <a href="http://www.gnuplot.info/">official gnuplot website</a>.</p>
 
-<h2>dot/Graphviz</h2>
+<h3>dot/Graphviz</h3>
 
-There are no additional options for dot/Graphviz available.
+<p>There are no additional options for dot/Graphviz available.</p>
 
 <p>For more information see the <a href="http://www.graphviz.org/">official Graphviz website</a>.</p>
 
-<h2>POV-Ray</h2>
+<h3>POV-Ray</h3>
 
 <table width="100%"><tr><td align="center"><img src="images/povray.png"/></td></tr></table>
 <br></br>
-<p>The editor offers only one tab for the rendering of POV-Ray files, namley "Rendering Options:" </p>
+<p>The editor offers only one tab for the rendering of POV-Ray files, namley “Rendering Options:” </p>
 <ul>
-<li><i>Quality</i> provides the same seven quality levels as the POV-Ray command-line interface, and the editor uses the same default level ("Compute media and radiosity"). Otherwise, the quality levels are listed in an ascending order, "Just show quick colors" providing the lowest quality.</li>
-<li><i>Antialiasing</i> is a technique to "smoothen" edges in a rendered image. It can dramatically improve the quality of an image, but using it may result in much longer rendering times. The options <i>Antialiasing Threshold</i> and <i>Antialiasing Depth</i> are explained in detail in the POV-Ray documentation, but the default values should suffice in most cases.</li></ul>
+<li>“Quality” provides the same seven quality levels as the POV-Ray command-line interface, and the editor uses the same default level (“Compute media and radiosity”). Otherwise, the quality levels are listed in an ascending order, “Just show quick colors” providing the lowest quality.</li>
+<li>“Antialiasing” is a technique to “smoothen” edges in a rendered image. It can dramatically improve the quality of an image, but using it may result in much longer rendering times. The options “Antialiasing Threshold” and “Antialiasing Depth” are explained in detail in the POV-Ray documentation, but the default values should suffice in most cases.</li></ul>
 
 <p>For more information see the <a href="http://www.povray.org/">official POV-Ray website</a>.</p>
 
-<h1>Rendering</h1>
-<p>Once you have created the markup
-to your satisfaction, you can click the "OK" button.</p>
-<p>If you made a mistake, and the
-external program cannot render your markup, Scribus displays an error
-message:</p>
+<h2>Rendering</h2>
+<p>Once you have created the markup to your satisfaction, you can click the “OK” button.</p>
+<p>If you made a mistake, and the external program cannot render your markup, Scribus will display an error message:</p>
 <table width="100%"><tr><td align="center"><img src="images/rf8.png"/></td></tr></table>
 <p><br><br>
 </p>
-<p>A blue X in the Render Frame along with an error message will
-then indicate that no content could be rendered:</p>
+<p>A blue “X” in the Render Frame along with an error message will then indicate that no content could be rendered:</p>
 <table width="100%"><tr><td align="center"><img src="images/rf-error2.png"/></td></tr></table>
 <h2>Additional Notes</h2>
-<p>If you look at the context menu
-for Render Frames, you will get the impression that they are image
-frames. In a sense, that's correct, as you can change the preview
-settings for Render Frames or update the content. There is, however,
-a major difference: As said above, the markup text ist stored within
-a Scribus file, and the rendered content is always created "on the
-fly." Each time you open a Scribus file that contains a Render
-Frame, Scribus will run the respective program that's necessary to
-render the content and create a temporary image file which will then
-be loaded into the frame. This is why Render Frames aren't listed in
-<i>Extras > Manage Images</i>.</p>
-<p>This behaviour has some
-consequences. While you can use a Scribus file with images on another
-computer by using <i>File > Collect for Output</i>
-and copying the resulting archive to another machine, Render Frames
-require the presence of the used <i>software</i>
-on this machine. Moreover, the feature might not work between
-different operating systems, because the command-line options can be
-different.</p>
-<p>Another limitation is that you can't apply any image effects to Render Frames.</p>
+<p>If you look at the Context Menu for Render Frames, you will get the impression that they are image frames. In a sense, that’s correct, as you can change the preview settings for Render Frames or update the content. There is, however, a major difference: As said above, the markup text ist stored within a Scribus file, and the rendered content is always created “on the fly.” Each time you open a Scribus file that contains a Render Frame, Scribus will run the program that’s necessary to render the content and create a temporary image file which will then be loaded into the frame. This is why Render Frames aren’t listed in <i>Extras > Manage Images</i>.</p>
+<p>This behavior has some consequences. While you can use a Scribus file with images on another computer by using <i>File > Collect for Output</i>
+and copying the resulting archive to another machine, Render Frames require the presence of the used <i>software</i> on this machine. Moreover, the feature might not work between different operating systems, because the command-line options can be different.</p>
+<p>Another limitation is that you can’t apply any image effects to Render Frames.</p>
 
-<h1>Configuration</h1>
-<p>To make Render Frames work, you need to have the required programs
-installed on your computer. By default, Scribus supports five
-programs, namely LaTeX, Lilypond, gnuplot, dot/Graphviz and Lilypond. On Linux,
-your package manager will take care about the installation and the
-dependencies of the software. On other platforms you might need to
-install the programs separately and edit some configuration files.</p>
-<p>If you open the tab "External Tools" in <i>File >
-Preferences</i>, you see the configuration options for Render Frames
-at the bottom of the dialog:</p>
+<h2>Configuration</h2>
+<p>To make Render Frames work, you need to have the required programs installed on your computer. By default, Scribus supports five programs, namely LaTeX, Lilypond, gnuplot, dot/Graphviz and Lilypond. On Linux, your package manager will take care about the installation and the dependencies of the software. On other platforms you might need to install the programs separately and edit some configuration files.</p>
+<p>If you open the tab “External Tools” in the Preferences, you see the configuration options for Render Frames at the bottom of the dialog:</p>
 <table width="100%"><tr><td align="center"><img src="images/rf1.png"/></td></tr></table>
 
-<p>Under "Configurations," Scribus shows the default configuration files. Each program you want to use from within Scribus needs a separate configuration file. To add a new program to your Render Frames, you have to create an XML file with some required settings. Below you see an abridged and commented gnuplot configuration file, which will serve as an example:</p>
+<p>Under “Configurations,” Scribus shows the default configuration files. Each program you want to use from within Scribus needs a separate configuration file. To add a new program to your Render Frames, you have to create an XML file with some required settings. Below you see an abridged and commented gnuplot configuration file, which will serve as an example:</p>
 
 <p><code><editorsettings description="Gnuplot" icon="gnuplot.png"></code> This line sets the description of the program, as well as the icon for the drop-down list in the Render Frame Editor. It must be stored in the same directory as the XML file. You can use  PNG, XPM and SVG icons.</p>
 <p><code><executable command="gnuplot"></code> This is the command-line call of the program. You can only use software that can work on the command-line. Also, the program needs to be able to create output in either PNG, PDF or EPS format. By default, Scribus uses the command-line options for Linux/UNIX systems.</p>
 <p><code><imagefile extension=".png"/></code> Here you tell the editor which file format it has to expect from the external program.</p>
 <p><code><highlighter> </highlighter></code> This part is mainly interesting for programmers, as it allows for the creation of indvidual syntax highlighting schemes by using Regular Expressions. For further information see: <a href="http://docs.kde.org/kde3/en/kdeutils/KRegExpEditor/index.html">http://docs.kde.org/kde3/en/kdeutils/KRegExpEditor/index.html</a> and <a href="http://doc.trolltech.com/4.4/qregexp.html">http://doc.trolltech.com/4.4/qregexp.html</a>.</p>
-<p><code><empty-frame-text></code> Here you can enter sample text in the
-markup language of the program you want to use, for instance:</p>
+<p><code><empty-frame-text></code> Here you can enter sample text in the markup language of the program you want to use, for instance:</p>
 <p><code>plot sin(x), (cos(x))**2</code></p>
-</p><code><preamble></code> If the markup language you
-want to use requires a preamble, you can enter it here. It will not
-be displayed in the editor.</p>
-<p><code><postamble></code> If the markup language you
-want to use requires a postamble, you can enter it here. It will not
-be displayed in the editor.</p>
-<p><code><tab type="settings"></code> Here's where translations to existing GUI strings as well as new tabs or other UI elements can be added via simple XML entries, for example:</p>
+</p><code><preamble></code> If the markup language you want to use requires a preamble, you can enter it here. It will not be displayed in the editor.</p>
+<p><code><postamble></code> If the markup language you want to use requires a postamble, you can enter it here. It will not be displayed in the editor.</p>
+<p><code><tab type="settings"></code> Here’s where translations to existing GUI strings as well as new tabs or other UI elements can be added via simple XML entries, for example:</p>
 <p><code><title><i18n></code>
 <p6><code>
 <ul>
 <li><en>Ranges</en>
-<li><de>Bereiche</de>
+<li><de>Bereiche</de>.org.org.org
 <li><fr>Rangées</fr>
 <li><pl>Zakresy</pl>
 <li><ru>Диапазоны</ru>
 </ul></code></p6>
 
-<p>To add a new configuration file, click on the "Add..."
-button, which will bring up a file dialog. Select your file and click
-"Open." The file will then be added to your Render Frame
-configuration.</p>
-<p>By moving entries of XML configuration files in the list up or
-down, you can change the order of entries in the editor's drop down
-list. If you want to use a different XML configuration file for a
-particular markup language (for example, if you need another default
-preamble for LaTeX frames in a project), you can change the path to
-the alternative file by clicking on "Change ..." or simply add a new configuration file with an appropriate name, like "MyLateX".</p>
-<br>If you prefer another editor for your markup, for example if you can't live without Emacs or vi, or if the editor window is simply too small for you, you can override the built-in Scribus Render Frame Editor by using
-another editor like vi or Kate. Just insert the path to the
-executable file in the text field "External Editor." The external editor won't override the Render Frame editor: As soon as
-you save your markup from the external editor, Scribus "intercepts"
-the data and renders the output into the frame or will display error messages in the "Program Messages" field. The interception also
-means that any change to the markup text won't be saved anywhere but
-in your Scribus file. If you haven't specified an external editor in <i>Preferences < Tools</i>, Scribus will display an error message:</p>
+<p>To add a new configuration file, click on the “Add …” button, which will bring up a file dialog. Select your file and click “Open.” The file will then be added to your Render Frame configuration.</p>
+<p>By moving entries of XML configuration files in the list up or down, you can change the order of entries in the editor’s drop down list. If you want to use a different XML configuration file for a particular markup language (for example, if you need another default preamble for LaTeX frames in a project), you can change the path to the alternative file by clicking on “Change …” or simply add a new configuration file with an appropriate name, like “MyLateX.”</p>
+<br>If you prefer another editor for your markup, for example if you can’t live without Emacs or vi, or if the editor window is simply too small for you, you can override the built-in Scribus Render Frame Editor by using another editor like vi or Kate. Just insert the path to the executable file in the text field “External Editor.” The external editor won’t override the Render Frame editor: As soon as you save your markup from the external editor, Scribus “intercepts” the data and renders the output into the frame or will display error messages in the “Program Messages” field. The interception also means that any change to the markup text won’t be saved anywhere but in your Scribus file. If you haven’t specified an external editor in <i>Preferences < Tools</i>, Scribus will display an error message:</p>
 <br></br>
 <table width="100%"><tr><td align="center"><img src="images/rf-error3.png"/></td></tr></table>
 <br></br>
-<p>In addition, you have the option to start with an empty frame. By checking
-"Force DPI," Scribus will render the output of every Render Frame with the resolution
-set in the spinbox to the right. It's set to 72 dpi by default for
-performance reasons. If you want to produce a document for
-professional printing, you will want to choose a higher resolution.</p>
+<p>In addition, you have the option to start with an empty frame. By checking “Force DPI,” Scribus will render the output of every Render Frame with the resolution set in the spinbox to the right. It's set to 72 dpi by default for performance reasons. If you want to produce a document for professional printing, you will want to choose a higher resolution.</p>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/scripter1.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/scripter1.html
==============================================================================
--- branches/ScribusOIF/doc/en/scripter1.html (original)
+++ branches/ScribusOIF/doc/en/scripter1.html Sat Oct  8 18:21:50 2011
@@ -6,26 +6,23 @@
 <body>
 <h2>Scripting Scribus with Python</h2>
 
-<h4>Overview</h4>
-<p>This is the description how to use the Scripting Plugin for Scribus. The scripter allows you to use the powerful Python Language as a scripting language in Scribus. This can allow you to automate otherwise repetitive tasks among other features. </p>
+<h3>Overview</h3>
+<p>This is the description how to use the scripting plug-in for Scribus. The Scripter allows you to use the powerful Python programming language as a scripting language in Scribus. This can help you to automate otherwise repetitive tasks or add new features.</p>
 
-<p>This manual is the first version, by no means complete or fully accurate. Addtions to the scripter are made frequently, so a short note to the mailing list is in order ifyou have questions.</p>
+<p>Note that additions to the Scripter are being made frequently, which means that the available documentation may be incomplete.</p>
 
-<p>There are some simple example scripts in the samples subdirectory where Scribus is installed. If you have created scripts which would be useful for other users, please feel free to upload it to www.scribus.net or mail mrdocs at scribus.info with an attachment. We hope to add a plug-in gallery to the main website in the future. </p>
 
-<h3>Using the Plugin</h3>
+<h3>Using the Plug-in</h3>
+<p>Scribus is being shipped with some “hard-wired” scripts, which are available via <i>Scripter > Scribus Scripts</i>:</p>
 
 <table width="100%"><tr><td align="center"><img src="images/Scripter.png" align="center" alt="Running a script" title="Running a script" /></td></tr></table>
 
-<p>To execute a Python Script select "Script->Execute Script..." Scribus will display a File select Box which allows you to select a Python Script. Below that, there is a menu item "Recent Scripts" where the most recently run scripts are listed. The number listed depends on your preferences setting. </p> 
+<p>There are some simple example scripts in the subdirectory “samples.” Its location depends on the operating system you use, e.g. <code>/usr/local/share/scribus</code> or <code>/usr/share/scribus</code> on Linux. If you have created a script which you think could be useful for others, please feel free to add it to the <a href="http://wiki.scribus.net/">Scribus Wiki</a> or paste it into an email and send it to the <a href="http://lists.scribus.info/mailman/listinfo/scribus/">Scribus mailing list</a>.</p>
 
-<p>You can use many Python modules with this Plugin. The only exception are scripts who expect parameters from the command Line. They won't work because the plugin gives the Python interpreter an empty command line.</p>
+<p>To execute an external Python script, you have to use <i>Script > Execute Script</i>. Scribus will open a file dialog, which allows you to select a Python script (file extension: *.py). <i>Script > Recent Scripts</i> shows a list of recently executed scripts.</p> 
 
-<p>The menu item "Show Console" gives you an interactive Python console, where you can execute commands directly. There is no need to do a "from scribus import *", this has already been done. You can use all the following commands in the Scripter API section directly without any prefix.</p>
+<p>You can use many Python modules with this plug-in, the only exception being scripts that expect parameters from the command Line. These won’t work because the plug-in gives the Python interpreter an empty command line.</p>
 
-<p>You can findsome useful information about any script calling "Script->About Script...".</p>
-
-<p>You can display the full Scripter reference manual when you select "Help->Scripter Manual...".</p>
-
+<p>The menu entry <i>Script > Show Console</i> will launch an interactive Python console, where you can execute commands directly. There is no need to use “<code>from scribus import *</code>”, as this has already been done. You can use all the commands listed in the following pages of the Scripter API documentation directly without any prefix.</p>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/settings1.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/settings1.html
==============================================================================
--- branches/ScribusOIF/doc/en/settings1.html (original)
+++ branches/ScribusOIF/doc/en/settings1.html Sat Oct  8 18:21:50 2011
@@ -18,7 +18,7 @@
 <li><a href="#7"><strong>Fonts</strong></a></li>
 </ul></td>
 <td width="300" valign="top"><ul>
-<li><a href="#8"><strong>Preflight Verifier</strong></a></li>
+</li>
 <li><a href="#9"><strong>Color Management</strong></a></li>
 <li><a href="#10"><strong>PDF Export</strong></a></li>
 <li><a href="#11"><strong>Document Item Attributes</strong></a></li>
@@ -42,7 +42,7 @@
 <p>The various Paths are the default locations Scribus will use for these operations. The path for Scripts is where Scribus looks when you choose <em>Scripts > Execute Script</em> from the menu.
 <table width="90%"><tr><td align="center"><img src="images/prefs_general.png" align="center" alt="Preferences: General" title="General Preferences" width="680"/></td></tr></table>
 <h3><a name="2"></a>Document</h3>
-In Preferences, the various settings here will be those that you see when you open a new document (<em>File > New</em>). In Document Settings, they will change the current document. The <strong>Page Size</strong> section should be easily understandable, with a large selection of standard sizes to choose from, in addition to <em>Custom</em>. The <strong>Document Layout</strong> choices have been the source of confusion for some. These simply apply to the relative placement of pages on your screen, and each will have the size as indicated, not some subdivision of it. <em>Double Sided</em> would typically be chosen for a book-like layout, and thus the First Page selector at the bottom allows the initial page to be Right or Left. This helps you use the appropriate Master Page layout (covered elsewhere).
+In Preferences, the various settings here will be those that you see when you open a new document (<em>File > New</em>). In Document Settings, they will change the current document. The <strong>Page Size</strong> section should be easily understandable, with a large selection of standard sizes to choose from, in addition to <em>Custom</em>. The <strong>Document Layout</strong> choices have been the source of confusion for some. These simply apply to the relative placement of pages on your screen, and each will have the size as indicated, not some subdivision of it. <em>Double Sided</em> would typically be chosen for a book-like layout, and thus the First Page selector at the bottom allows the initial page to be Right or Left. This helps you use the appropriate <a href="pagetemplate1.html">Master Page</a> layout.
 <table width="90%"><tr><td align="center"><img src="images/prefs_document.png" align="center" alt="Default Document Settings" title="Default Document Settings"  width="680" /></td><td width="275"><img src="images/prefs_document1.png" width="250"><p>Here is an example of Double Sided, Right Page as the first (also happens to be two-column). If you print these on a local printer, they will print as individual pages.</td></tr></table>
 <p><strong>Preset Layouts</strong> will be available for anything other than Single Page layout. What these represent are some time-honored ways to set the margins of the page, many based on some mathematical approach related to the dimensions of the page. Below we see the contrast of these various methods – these are all right pages of a double-sided layout.
 <p><table cellpadding="3"><tr>
@@ -98,7 +98,7 @@
 <p>Remember that the settings here simply change the default values for PDF Export. You can still override any settings with the PDF Export dialog. For more info on PDF look at <a href="pdfexport1.html">PDF Export Options</a> and <a href="pdfx3.html">PDF/X-3 and Scribus</a>.</p>
 
 <table width="90%" cellpadding="5"><tr><td align="center"><img src="images/prefs_pdfexport.png" alt="PDF Export Preferences" title="PDF Export Preferences" width="680"/></td></tr>
-<tr><td>New to 1.3.5+ versions is the inclusion of the ability to create bleeds, crop marks, and other printer marks as you export to PDF. Any bleed width is added to the page dimensions you selected when you created your document.
+<tr><td>New to Scribus 1.4.x is the inclusion of the ability to create bleeds, crop marks, and other printer marks as you export to PDF. Any bleed width is added to the page dimensions you selected when you created your document.
 <p>Note here an example of what you see when you do not have ICC profiles installed – <strong>PDF/X-3 Output Intent</strong> is not available.</td></tr>
 <tr><td align="center"><img src="images/prefs_pdfexport1.png" alt="PDF Export Preferences" title="PDF Export Preferences"/></td></tr></table>
 
@@ -110,7 +110,7 @@
 
 <table width="90%"><tr><td align="center"><img src="images/prefs_keyboard.png" alt="Setting the Keyboard Shortcuts  for Scribus" title="Setting the Keyboard Shortcuts for Scribus"/></td></tr></table>
 
-<p>Here you see the various default keyboard shortcuts, which are editable, and many others can be assigned. These are stored in the <tt>.scribus/scribus135.rc</tt> file. Moreover, once customized, you can export them into a separate XML file which can be exported and saved separately, along with making it portable to other machines. The default file suffix is .ksxml. The XML is a unicode file and should not have issues being transported across platforms, with the only caveat that Macs have an option and command meta key, where Linux and Windows share common keyboards.</p>
+<p>Here you see the various default keyboard shortcuts, which are editable, and many others can be assigned. These are stored in the <tt>.scribus/scribus14.rc</tt> file. Moreover, once customized, you can export them into a separate XML file which can be exported and saved separately, along with making it portable to other machines. The default file suffix is .ksxml. The XML is a unicode file and should not have issues being transported across platforms, with the only caveat that Macs have an option and command meta key, where Linux and Windows share common keyboards.</p>
 
 <h3><a name="13"></a>Scrapbook</h3>
 <p>With scrapbooks, you can <em>right button</em> drag and drop frequently used items, including pictures, images and text files for quick placement. Scrapbooks can be saved with a file or independently of a document, as a separate scrapbook which can be loaded use with many different Documents. Separate scrapbooks are kept with a <code>.scs</code> designation. This panel sets the defaults for the thumbnail size in the scrapbook palette and if scrapbooks should be saved automatically when changed.</p>
@@ -149,11 +149,22 @@
 <h4>Where Are the Preferences Files ?</h4>
 <p>Scribus' preferences are kept in a hidden directory <code>.scribus</code>. The location of which is as follows:
 <ul>
-<li><strong>Linux:</strong> Under your $home directory, %username/.scribus</li>
-<li><strong>MacOSX:</strong> Under User/%username/.scribus</li>
-<li><strong>Windows:</strong> Documents and Settings/%username/.scribus</li>
+<li><strong>Linux/UNIX:</strong> <code>/home/username/.scribus</code></li>
+<li><strong>MacOSX:</strong> <code>User/username/.scribus</code></li>
+<li><strong>Windows:</strong> <code>Documents and Settings/username/.scribus</code></li>
 </ul>
- Within the directory is a <code>.scribus13.rc</code> file, a <code>scribusfont.rc</code> file which preserves your font preferences and a <code>prefs13.xml</code>. These files are stored in XML format, so you can inspect its contents with a text editor. If you have installed the scripter plug-in, there will also be a <code>scripter.rc</code> file which lists most recently used scripts. There might also be several directories, which are configuration or history files. If you are troubleshooting starting Scribus, <strong>rename</strong>, do not delete these files and directories. If you rename the directory, on re-starting Scribus, the launch time will be somewhat longer, as Scribus creates a cache of installed fonts. On the second re-start of Scribus, it will be much quicker. </p>
+ Within the directory is a <code>.scribus14.rc</code> file, a <code>scribusfont.rc</code> file which preserves your font preferences and a <code>prefs14.xml</code>. These files are stored in XML format, so you can inspect its contents with a text editor. If you have installed the scripter plug-in, there will also be a <code>scripter.rc</code> file which lists most recently used scripts. There might also be several directories, which are configuration or history files. If you are troubleshooting starting Scribus, <strong>rename</strong>, do not delete these files and directories. If you rename the directory, on re-starting Scribus, the launch time will be somewhat longer, as Scribus creates a cache of installed fonts. On the second re-start of Scribus, it will be much quicker. </p>
 
+<hr>
+<p>See also</p>
+<ul>
+<li><a href="fonts1.html">Font Setup</a></li>
+<li><a href="hyphenator.html">Hyphenation</a></li>
+<li><a href="docinfo.html">Document Information</a></li>
+<li><a href="short-words.html">Short Words Plug-in</a></li>
+<li><a href="color2.html">Managing Colors</a></li>
+<li><a href="WwRenderframes.html">Working with Render Frames</a></li>
+</ul>
+</p>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/short-words.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/short-words.html
==============================================================================
--- branches/ScribusOIF/doc/en/short-words.html (original)
+++ branches/ScribusOIF/doc/en/short-words.html Sat Oct  8 18:21:50 2011
@@ -2,68 +2,42 @@
 <head>
 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-	<title>Short Words for Scribus</title>
+	<title>Short Words</title>
 </head>
 <body>
-<h2>Short Words for Scribus</h2>
+<h2>Short Words</h2>
 
-<h4>What the Short Words Plug-in Does:</h4>
-<p>Short Words for Scribus is a special plug-in for adding non-breaking spaces before or after, so called, short words.</p>
-<p>These short words are specific to every language's typography rules,  e.g. according to Czech, Polish, and Slovak typographical standards it is not allowed to leave one letter conjunctions at line ends, if the line contains more than 25 signs. A common issue are measure and weight units, where for obvious reasons non-breaking spaces should be put in-between the preceding numbers and the units. Last but not least, there are plenty of abbreviated academic degrees, military ranks etc, which should not be separated from their owners.</p>
-<p>Although Scribus team cannot individually address every one of these national standards, one of the Scribus core team developers, Petr Vaněk, decided to provide Scribus users with a plug-in, that can be easily customized to meet their specific needs.</p>
+<h3>What the Short Words Plug-in does:</h3>
+<p>“Short Words” is a plug-in for adding non-breaking spaces before or after certain abbreviations, e.g. between “25” and “km” or between “Dr.” and “Pittman”, to avoid a line break between both parts.</p>
+<p>The Scribus Team cannot address all of the different national or language-specific standards that should be applied to avoid a line break, but one of the Scribus Team members, Petr Vaněk, decided to provide Scribus users with a plug-in, that can be easily customized to meet their specific needs.</p>
 
-<h4>How it Works</h4>
-<p>The screen shot below shows a sample text containing a short word before applying non-breaking spaces.</p>
-<p><b>Text sample before executing Short Words</b></p>
-<table width="100%"><tr><td align="center"><img src="images/before_short_words.png" alt="Text sample before executing Short Words"  title="Text sample before executing Short Words " /></td></tr></table>
-
-<p>The same text after applying non-breaking spaces. The red encircled word Mr jumped to the next line, because the normal space between Mr and Justice has been replaced by a non-breaking space.</p>
-<p><b>Text sample after executing Short Words</b></p>
-<table width="100%"><tr><td align="center"><img src="images/after_short_words.png" alt="Text sample after executing Short Words"  title="Text sample after executing Short Words " /></td></tr></table>
-<h4>How to execute Short Words</h4>
-<p>If you successfully installed the plug-in, go to the <code>Extras</code> menu and choose the <code>Short Words...</code> option:</p>
-<p><b>Calling Short Words for Scribus</b></p>
-<table width="100%"><tr><td align="center"><img src="images/swmenu.png" alt="Calling Short Words for Scribus"  title="Calling Short Words for Scribus " /></td></tr></table>
-
-<p><b>Short Words dialog window</b></p>
-<!--<center><img src="images/" alt="" /></center>-->
-<table width="100%"><tr><td align="center"><img src="images/swdialog.png" alt="Short Words dialog window"  title="Short Words dialog window " /></td></tr></table>
+<h3>Applying the “Short Words” mechanism</h3>
+<p>The “Short Words” plug-in is available via <i>Extras > Short Words</i> from the Menu Bar.</p>
+<table width="100%"><tr><td align="center"><img src="images/swdialog.png" alt="Short Words Dialog"  title="Short Words Dialog" /></td></tr></table>
+<p>The “Short Words” dialog consists of two parts. The options in the upper section (“Apply unbreakable space to:”) allow for choosing between different ranges of adding non-breaking spaces:</p>
 <ul>
-<li><strong>Selected frames</strong> - Apply non-breaking spaces to selected text frames</li>
-<li><strong>Active page</strong> - Apply non-breaking spaces to all frames of the current page.</li>
-<li><strong>All items </strong> - Apply non-breaking spaces to the whole document.</li>
-<li><strong>Replace defaults by user config</strong> -  When the user config file exists you can choose if you want to append your config to the global configuration by unchecked button. You can replace predefined values with yours with checked button too.</li>
+<li><b>Selected frames</b> adds non-breaking spaces to all selected text frames.</li>
+<li><b>Active page</b> adds non-breaking spaces to all frames on the current page.</li>
+<li><b>All items</b> adds non-breaking spaces to the whole document.</li>
 </ul>
-<h4>Configuration</h4>
-<p>Short Words for Scribus provides a system wide configuration file <code>scribus-short-words.rc</code>, which is usually located in the <code>$prefix/lib/scribus/plugins</code> directory (the actual directory depends on where you or your distribution installed Scribus). This configuration file is self explanatory, basically it contains a list of short words for a given language, preceded or followed by a space and separated by commas. The position of the space, before or after a short word, indicates to the plug-in, where the non-breaking space should be put. Every line with configuration settings has to start with the language it is meant for, e.g. en for English or cs for Czech:
+<p>The lower part (“Language Settings”) looks more simple, but is conceptually a bit more complicated. The default setting – ”Use Language from Style Definition” – means that Scribus will <b>either</b> use the system’s language settings, <b>or</b> the <a href="settings1.html#1">Scribus language settings</a>, <b>or</b> the language settings in a particular <a href="WwStyles.html">style</a>, and the latter will always override the former. If you uncheck the default, you can let Scribus apply the rules for another language, but, as is also true for system, Scribus and style settings, Scribus needs correct information about the language you want to use. If there’s no configuration for a particular language available, you need to create it yourself.</p>
+<h4>Configuring the Short Words Plug-in</h4>
+<p>The “Short Words” plug-in uses a system-wide configuration file called <code>scribus-short-words.rc</code>, which is usually located in the <code>$prefix/lib/scribus/plugins</code> directory (the actual directory depends on your operating system and/or where you or your distribution installed Scribus). This configuration file is almost self-explanatory: Basically, it contains a list of abbreviations for a given language, preceded or followed by a space and separated by commas. The position of the space, before or after an abbreviation, tells the plug-in where the non-breaking space will be added. Every line with configuration settings has to start with the language it is meant for, e.g. <code>en</code> for English or <code>cs</code> for Czech:
 </p>
 <pre>
-#  English stuff START here
+#  English starts here
 en=Dr. ,Dr ,Mr. ,Mr ,Mrs. ,Mrs ,Ms. ,Ms ,Prof. ,Prof ,Rev. ,Rev ,
 en= Kg, kg, g, mg, oz, lb, cwt, km, Km, m, cm, mm,
 
-#  Czech short words START here
+#  Czech starts here
 ## hanging conjunctions
 cs=K ,k ,S ,s ,V ,v ,Z ,z ,O ,o ,U ,u ,I ,i ,A ,
 ## physics and math
 cs= kg, g, m, cm, mm, l, hl, s, %,
 </pre>
-<p>If you want to use self defined short words, e.g. for a new language, create your own configuration file with your own short words, and save the file as <code>scribus-short-words.rc</code> in the <code>~/.scribus</code> directory. <em>You can choose the plugin appends your configuration into the system one or just to replace and use it only itself.</em></p>
+<p>If you want to use customized “Short Words”, e.g. for a new language, you can create your own configuration with the appropriate data and add the content via copy and paste to the file <code>scribus-short-words.rc</code> in the <code>.scribus</code> folder in your home/user directory. You can also use the <a href="settings1.html#18">Scribus Preferences</a> to enter your configuration data directly.</p>
 
-<h3 class="title">Important</h3>
-<p>The author is eager to extend the global configuration file to meet your needs, let him know about the short words and standards specific to your language.</p>
-
-<h3 class="title">Short Words Copyright</h3>
-<p>Short Words for Scribus Copyright 2003, 2004 Petr Vaněk, <<a href="mailto:petr at yarpen.cz">petr at yarpen.cz</a>></p>
-<p>This program is free software; you can redistribute it
-and/or modify it under the terms of the GNU General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.</p><p>This program is distributed in the hope that it will be
-useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.</p><p>You should have received a copy of the GNU General Public
-License along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</p>
-<p>Document Copyright © 2004 Petr Vaněk, Maciej Hanski, under the opencontent.org license included with these documents with Elected Option IV</p></p>
+<h3>Important</h3>
+<p>The Scribus Team is eager to extend the global configuration file to meet as many needs as there are users who want the typographical rules of their particular language to be available in Scribus. In case you have created a reliable configuration file for your language, we’d be happy to distribute it with Scribus, so that your work can be shared with and improved by others.</p>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/toolbox.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/toolbox.html
==============================================================================
--- branches/ScribusOIF/doc/en/toolbox.html (original)
+++ branches/ScribusOIF/doc/en/toolbox.html Sat Oct  8 18:21:50 2011
@@ -2,69 +2,14 @@
 <html><head>
   
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-  <title>My Linux DTP Tool Box</title>
+  <title>Your DTP Tool Box</title>
 
   
 </head><body>
-<h2>My Linux DTP Tool Box</h2>
+<h2>Your DTP Tool Box</h2>
 
-<p>This is a selection of important tools to be used with Scribus,
-based fairly narrowly on
-how reliably these applications work with Scribus for print.
-Some of these apps have been
-tested within the limitations of modern PC hardware, for example:
-telling
-XNview to create 10,000 thumbnails at once. <br>
-</p>
+<p>As you have <a href="about2.html">learned</a>, DTP is mostly about assembling content created in other programs. This is a selection of reliable tools, recommended by the developers for use with Scribus.</p>
 
-<ul>
 
-  <li><a href="toolbox1.html">Adobe Reader</a></li>
-  <li><a href="toolbox2.html">Other PDF Viewers</a></li>
-  <li><a href="toolbox3.html">Batik</a></li>
-  <li><a href="toolbox4.html">GIMP</a></li>
-  <li><a href="toolbox5.html">Ghostscript</a></li>
-  <li><a href="toolbox6.html">GSview</a></li>
-  <li><a href="toolbox7.html">Advanced Ghostscript & GSview</a></li>
-  <li><a href="toolbox8.html">ImageMagick</a></li>
-  <li><a href="toolbox9.html">Inkscape</a></li>
-  <li><a href="toolbox10.html">KSnapshot</a></li>
-  <li><a href="toolbox11.html">Tracing Tools</a></li>
-  <li><a href="toolbox12.html">WINE</a></li>
-  <li><a href="toolbox13.html">XNview</a></li>
-  <li><a href="toolbox14.html">Lprof</a></li>
-  <li><a href="toolbox15.html">Krita</a></li>
-</ul>
-
-<h4>A note on PDF Viewers:</h4>
-
-<p>One of the challenges with PDF in general is that
-Scribus creates high-end PDF files. Sometimes their features are beyond
-the capabilities of some open
-source viewers, while necessary for reliable
-commercial printing and only supported in commercial pre-press or DTP
-tools. Years of working with Scribus have led to the strongly
-held conclusion that the following viewers are the most reliable
-at displaying PS/EPS/PDF created by Scribus:</p>
-
-<ul>
-
-  <li><strong>Adobe Reader 7.x or later</strong> – The best and
-sometimes the only choice for PDF viewing. Detailed notes and hints: <a href="toolbox1.html">Adobe Reader.</a> </li>
-  <li><strong>GSview 4.8+</strong> with the latest version of
-Ghostscript available. This combination is your best choice for viewing
-EPS files, PS files and most PDFs. In addition, GSview has many other
-very useful capabilities with add-ons like <code>pstoedit</code> and <code>epstool</code>.
-For more detailed notes and hints: <a href="toolbox6.html">GSview</a>.</li>
-</ul>
-
-<p><strong>If any other PDF or EPS viewer you choose cannot display
-PDFs from Scribus, but they do view properly in Adobe Reader, file
-a bug with the upstream author. It cannot be stressed this enough. In
-virtually all cases that have been tested, it is a limitation of the
-viewing
-application. Scribus PDFs are tested daily with specialist pre-press
-software to validate their adherence to the published PDF
-specifications.</strong></p>
 
 </body></html>

Modified: branches/ScribusOIF/doc/en/toolbox13.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/toolbox13.html
==============================================================================
--- branches/ScribusOIF/doc/en/toolbox13.html (original)
+++ branches/ScribusOIF/doc/en/toolbox13.html Sat Oct  8 18:21:50 2011
@@ -1,17 +1,16 @@
 <html>
 <head>
 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-	<title>Xnview</title>
+	<title>XnView</title>
 </head>
 <body>
-<h2>Xnview</h2>
-<p>There are loads of image previewer/thumb nailing applications from some web based - even Konqueror and Nautilus have some of these features. </p>
+<h2>XnView</h2>
+<p>There are image previewers and thumbnailing applications galore – even Konqueror and Nautilus have some of these features, so why should anyone use XnView?</p>
 
-<h3>So why do I pick Xnview? </h3>
 
-<p>Its ugly. It uses old, Motif type libraries, but it has two very redeeming qualities: </p>
-<ol><li>Its very fast, as fast or faster than some similar proprietary apps. </li>
-<li>It handles a wide array of image formats with very good conversion capabilities. There are some real obscure file formats Xnview can open and convert. It's probable that only Imagemagick can handle more. I've found it very stable and worth at least adding to your toolbox.</li></ol>
+<p>It’s ugly. It uses old, Motif-like libraries, but it has two very redeeming qualities: </p>
+<ol><li>It’s very fast, faster than most similar programs. </li>
+<li>It handles a wide array of image formats with very good conversion capabilities. There are some real obscure file formats XnView can open and convert. It’s probable that only ImageMagick can handle more. It’s very stable and worth at least considering for your toolbox.</li></ol>
 
 <table width="100%"><tr><td align="center"><img src="images/xnview.png" alt="Xnview" /></td></tr></table>
 </body>

Modified: branches/ScribusOIF/doc/en/toolbox15.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/toolbox15.html
==============================================================================
--- branches/ScribusOIF/doc/en/toolbox15.html (original)
+++ branches/ScribusOIF/doc/en/toolbox15.html Sat Oct  8 18:21:50 2011
@@ -5,16 +5,8 @@
 </head>
 <body>
 <h2>Krita</h2>
-<p>Seemingly rising from the ashes, <a href="http://koffice.org/krita/">Krita</a>, a part of the <a href="http://koffice.org/">KDE Office</a> suite, has become a wonderful application focused on natural painting. Using a brushes metaphor on screen, it has some innovative and quite interesting features like the ability to emulate the way watercolors dry on canvas, a filters gallery to display previews of each filter, adjustment layers, layer groups and tools to precisely manipulate brush strokes. That alone would be worth adding it to your publishing toolbox for the occasional artwork.</p><p> The bonus for Scribus users is its versatile handling of a large number of formats and color spaces. Not only RGB, but CMYK, Greyscale (up to 16 bit)  and L*a*b are handled using the same littlecms color engine as Scribus. Krita fully supports RGB to CMYK conversion needs in a simple easy to use manner, but can also convert 16 bit images into 8 bit to import into Scribus. (Scribus will support 16-bit images and possibly higher in the future.)</p>
+<p>After rising from the ashes, <a href="http://koffice.org/krita/">Krita</a>, a part of the <a href="http://koffice.org/">KDE Office</a> suite, has become a wonderful application focused on natural painting, like CorelPainter. Using a brushes metaphor on screen, it has some innovative and quite interesting features like the ability to emulate the way painting colors mix and dry on canvas, a filters gallery to display previews of each filter, adjustment layers, layer groups and tools to precisely manipulate brush strokes. That alone would make Krita worth adding to your DTP toolbox for the occasional artwork, but the major bonus for Scribus users is its versatile handling of a large number of file formats and color spaces. Krita not only handles RGB, CMYK, and Greyscale (up to 16 bit) using the same littleCMS color management engine as Scribus, but also rather unusual color spaces like XYZ and L*a*b. Krita fully supports RGB to CMYK conversion requirements in a simple and easy-to-use manner and can also convert 16 bit images into 8 bit for import into Scribus. (Scribus doesn’t support 16 bit images yet.)</p>
 
-<p><strong>Notes:</strong></p>
-<ul>
-   <li>There is one limitation in the current 1.6.x Krita in the way resolution works when Krita writes an image to disk. Thus, Scribus will always interpret the resolution as 72 DPI, which is not usually high enough for good quality print, so rescaling may need to be done within Scribus.  </li>
-   <li>Krita is only available on BSD, Linux, MacOSX (via fink) and Unix. Krita 2 is expected to be available as a native Win32 application. </li>
-   <li>For importing into Scribus, exporting Tiff from Krita with LZW compression should yield good results and Krita reliably embeds ICC profiles into the images to make color matching from print to screen much easier.</li>
- </ul>
-
-<br /><br />
 <table width="100%"><tr><td align="center"><img src="images/krita1.jpg" alt="Krita showing a color managed CMYK image." /></td></tr></table>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/toolbox16.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/toolbox16.html
==============================================================================
--- branches/ScribusOIF/doc/en/toolbox16.html (original)
+++ branches/ScribusOIF/doc/en/toolbox16.html Sat Oct  8 18:21:50 2011
@@ -5,9 +5,9 @@
 </head>
 <body>
 <h2>Fontmatrix</h2>
-<p>For those users coming from MacOSX or an even older MacOS one of the perceived missing parts on Linux is a nice graphical font manager. Enter <a href="http://fontmatrix.net">Fontmatrix</a>. While it is young, it has all the essentials to manage fonts both individually and in groups via "tags". Fontmatrix also has some nice features to preview not just sample text, but at scalable sizes along with the ability to view individual glpyhs. Even better, Fontmatrix supports Open Type fonts very well and in the future plans are advanced Open Type abilities. </p>
+<p>For those coming from MacOSX or an even older MacOS version, one of the perceived missing parts on Linux is a nice graphical font manager. Enter <a href="http://fontmatrix.net">Fontmatrix</a>. While it is young, it has all the essentials to manage fonts both individually and in groups via “tags”. Fontmatrix also has some nice features to preview fonts via sample text, and to do so at scalable sizes, along with the ability to view individual glyphs. Even better, Fontmatrix supports OpenType fonts very well, and in the future even more Open Type features will be added.</p>
 
-<p>While Fontmatrix does not "activate" fonts on the fly for open applications, it can add and remove fonts quickly without messing with the important system fonts which all applications rely on. So for working with Scribus or other graphics applications, simply preview and add fonts as needed, then restart your application. Lastly, Fontmatrix can create "fontbooks" which are PDFs displaying each font. </p>
+<p>While Fontmatrix does not “activate” fonts on the fly for already running applications, it can add and remove fonts quickly without messing with the important system fonts which all applications rely on. So for working with Scribus or other graphics applications, simply preview and add fonts as needed, then restart your application. Lastly, Fontmatrix can create "fontbooks" which are PDF files displaying each font. </p>
 
 <br /><br />
 <table width="100%"><tr><td align="center"><img src="images/fontmatrix.png" alt="Fontmatrix displaying the wonderful Gentium font." /></td></tr></table>

Modified: branches/ScribusOIF/doc/en/toolbox17.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/toolbox17.html
==============================================================================
--- branches/ScribusOIF/doc/en/toolbox17.html (original)
+++ branches/ScribusOIF/doc/en/toolbox17.html Sat Oct  8 18:21:50 2011
@@ -5,21 +5,22 @@
 </head>
 <body>
 <h2>SwatchBooker</h2>
-<p>Just like old habits die hard, many designers rely on color palettes from vendors like Pantone, HKS, Toyo or others, and especially those that have been shipped with the drawing or design application they are used to for years, if not decades.</p>
-<p>Although the Scribus Team has succeeded in licensing many of those palettes for future stable versions, not all of the efforts resulted in a success, which means you have to get the palettes you need from other resources. The Scribus Team is aware of some external palette collections in Scribus's own palette format that contain these colors, but we cannot endorse their use, since their legality is as questionable as their reliability.</p>
-<p>Until the licensing issues with regard to Scribus are solved and as long as you have a valid license for a program like CorelDraw, PageMaker or InDesign, you should be free to <i>use</i> the included color palettes in Scribus, even though Scribus doesn't support many proprietary color palette formats yet. This is where you should consider <a href="http://www.selapa.net/swatchbooker/">SwatchBooker</a> as the tool of choice. SwatchBooker will not only help you to convert color palettes, whether it be proprietary or Open Source, for use with Scribus; you can also modify existing palette files by changing color values, assigning color profiles or translating color names.</p>
-<p>If you use SwatchBooker for anything but color palette conversion, you do so at your own risk. Changing names of spot colors or their alternative CMYK/RGB values may result in serious color issues, and it defies the purpose of standardized color palettes.</p>
-<p>Once you have converted the color palettes with SwatchBooker (via "File > Save As"), you have to copy them to directory that contains the palette files:
+<p>Just like old habits die hard, many designers rely on color palettes from vendors like Pantone®, HKS®, Toyo®, or others, and especially those that have been shipped with the drawing or design application they are used to for years, if not decades.</p>
+<p>Although the Scribus Team has succeeded in licensing many of those palettes for future stable versions, not all of the efforts resulted in a success, which means you have to get the palettes you need from other resources. The Scribus Team is aware of some external palette collections in Scribus’s own palette format that contain these colors, but we cannot endorse their use, since their legality is as questionable as their reliability.</p>
+<p>Until the licensing issues with regard to Scribus are solved and as long as you have a valid license for a program like CorelDraw, PageMaker or InDesign, you should be free to <i>use</i> the included color palettes in Scribus, even though Scribus doesn’t support many proprietary color palette formats yet. This is where you should consider <a href="http://www.selapa.net/swatchbooker/">SwatchBooker</a> as your tool of choice. SwatchBooker will not only help you to convert color palettes, whether they be proprietary or Open Source, for use with Scribus; you can also modify existing palette files by changing color values, assigning color profiles or translating color names.</p>
+<p>If you use SwatchBooker for anything but color palette conversion, you do so at your own risk. Changing names of spot colors or their alternative CMYK/RGB values may result in serious color mismatches, and it defies the very purpose of standardized color palettes.</p>
+<p>Once you have converted the color palettes with SwatchBooker (via <i>File > Save As</i>), you have to copy them to directory that contains the palette files:
 <ul>
-<li>On Linux and Unix: /usr/lib/scribus/swatches.</li>
-<li>On Mac OSX: Your installation directory, followed by /lib/scribus/swatches, eg: /Applications/Scribus.app/Contents/lib/scribus/swatches/</li></ul></p>
-<li>On Windows: C:\Program Files\Scribus1.3.x\libs\swatches.</li></ul></p>
+<li>On Linux and UNIX: <code>/usr/lib/scribus/swatches</code>.</li>
+<li>On Mac OS X: Your installation directory, followed by <code>/lib/scribus/swatches</code>, e.g.: <code>/Applications/Scribus.app/Contents/lib/scribus/swatches/</code></li>
+<li>On Windows: <code>C:\Program Files\Scribus1.4.x\libs\swatches</code>.</li></ul></p>
 <br>
-<table width="100%"><tr><td align="center"><img src="images/SwB.png" alt="A proprietary color palette in Adobe's ASE format opened by SwatchBooker" /></td></tr></table>
+<table width="100%"><tr><td align="center"><img src="images/SwB.png" alt="A proprietary color palette in Adobe's® ASE format opened by SwatchBooker" /></td></tr></table>
 <br>
-<p><b><i>Requirements:</i></b> Python, PyQt4, lcms</p>
-<p><b><i>Supported formats:</b></i></p>
-<p><b>Import:</b> Adobe (ACO, ACB, ACT, ASE, ACF, BCF, CLR); AutoCAD (ACB; unencrypted only!); ColorSchemer (CS); Corel (CPL); GIMP (GPL); ICC named colors profiles; OpenOffice.org (SOC); QuarkXPress (QCL+CUI; note that you need both files to be able to convert an XPress color palette); RAL (BCS); RIFF (PAL); Scribus (XML); VivaDesigner (XML)</p>
-<p><b>Export:</b> Adobe (ASE); GIMP (GPL); HTML; OpenOffice.org (SOC); Scribus (XML)</p>
+<p><b><i>Requirements:</i></p>
+<p></b> Python, PyQt4, littleCMS</p>
+<p><b><i>Supported file formats:</b></i></p>
+<p><b>Import:</b> Adobe (ACO, ACB, ACT, ASE, ACF, BCF, CLR); AutoCAD (ACB; unencrypted only!); ColorSchemer (CS); Corel (CPL); GIMP (GPL); ICC named color profiles; OpenOffice.org (SOC); QuarkXPress (QCL+CUI; note that you need both files to be able to convert an XPress color palette); RAL (BCS); RIFF (PAL); Scribus (XML); VivaDesigner (XML)</p>
+<p><b>Export:</b> Adobe Swatch Exchange (ASE); GIMP (GPL); HTML; OpenOffice.org (SOC); Scribus (XML)</p>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/toolbox2.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/toolbox2.html
==============================================================================
--- branches/ScribusOIF/doc/en/toolbox2.html (original)
+++ branches/ScribusOIF/doc/en/toolbox2.html Sat Oct  8 18:21:50 2011
@@ -1,12 +1,26 @@
 <html>
 <head>
 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-<title>Other PDF/PS Viewers</title>
+<title>PDF/PostScript Tools</title>
 </head>
 <body>
-<h2>Other PDF Viewers</h2>
-<p>Another useful PDF viewer to use with Scribus is GSview which is a graphical viewer/front end to Ghostscript. The latest version (4.9) with Ghostscript 8.5+ work very nicely together allow you to convert PS to PDF, as well as view and convert EPS, PS and PDF files among other tools. GSview runs natively on Linux/Unix. OS/2 and Windows. More details are in <a href="gsview.html">GSview and Scribus</a>.</p>
-<p><strong>Kpdf 3.5+ / <a href="http://www.foolabs.com/xpdf/">Xpdf</a> </strong> The most recent Kpdf in KDE 3.4 shows me the the developers "get it". Based on Xpdf 3.x it has many nice touches and seems to be a pretty fast renderer. I say this not as a KDE fanboy, but based on using quite a bit in comparison to the larger Adobe Readers. One other note, look through Settings and enable "aggressive" in the performance options. If you have the required memory, enabling this makes a big difference in loading larger or complex documents.  You still might want Xpdf 3.02+ from Foolabs, as it includes some command line tools for converting PDFs to PS. To display properly embedded fonts with Xpdf in all PDFs, not just Scribus ones, you should read the Xpdf man page about setting up the fonts paths correctly via the .xpdfrc file. Otherwise, embedded fonts may not display properly. One known limitation is the inability to display transparency in Scribus generated PDFs.</p>
-<p>In KDE 4, <a href="http://okular.kde.org/">Okular</a>, the sucessor to KPDF is a versatile PDF viewer which also can view a number of different image formats like Tiff and PSD. </p>
+<h2>PDF/PostScript Tools</h2>
+<h3>PDF and PostScript Viewers</h3>
+<p>While <a href="toolbox1.html">Adobe Reader</a> is the most reliable PDF viewer, it is rightfully known as a resource hog, and it can’t display anything but PDF files. For a quick preview of PDF files some people may prefer a faster viewing program, and while there are many alternative PDF viewers, only two of them are recommended by the Scribus Team:</p>
+<ul>
+<li><a href="http://okular.kde.org/">Okular</a> has become the default document viewer in KDE 4. In terms of PDF feature support, Okular is suprisingly close to Adobe Reader, although it cannot handle color-managed CMYK PDFs reliably yet. What makes Okular even more interesting than its PDF support is the long list of file formats that can be opened and converted: PDF, PostScript, EPS, DjVu, DVI, G3 Fax, as well as many image formats.</li>
+<li>Another reliable viewer and converter is GSview, whose features will be described in a <a href="toolbox6.html">separate chapter</a></li>
+</ul>
+<h3>PDF Editors</h3>
+<p>PDF was and is designed as some kind of “electronic paper”, which means a PDF is not meant to be editable. But the more ubiquitous the PDF format became, the more use cases appeared, in which it made sense to edit “non-editable” files, e.g., last-minute corrections of spelling errors or the re-ordering of pages in a print workflow. The inventor of PDF, Adobe, took the lead and devoloped Acrobat, which is still the leading PDF editing program. However, since the PDF specification is open, others started to tinker as well, and today there are countless tools, closed source or open, that allow for editing PDF files. Below is a list of recommended FLOSS programs for PDF editing.</p>
+<ul>
+<li><a href="http://multivalent.sourceforge.net">Multivalent</a> and the <a href="http://www.accesspdf.com/pdftk">PDF Toolkit (pdftk)</a> are both Java-based commandline utilities with countless options to manipulate PDFs.</li>
+<li><a href="http://pdfedit.petricek.net/index_e.html">PDF Edit</a> is a collection of Qt scipts to manipulate PDFs, but the scripts are hidden behind a graphical user interface, so editing PDFs works in a WYSIWIG (“What you see is what you get”) mode. PDF Edit allows for many direct changes to the content of a PDF file, including changes to text or colors, as well as removing content. The program is based on Qt3, but as of this writing, the developers are working on a port to Qt4.</li>
+<li><a href="http://jpdftweak.sourceforge.net">jPDF Tweak</a>, a Java program, has rightfully been called a Swiss army knife for PDFs. It uses the highly reliable iText library for PDF editing.</li><br>
+<table width="100%"><tr><td align="center"><img src="images/tb-jpdf.png" alt="jPDF Tweak" title="jPDF Tweak" /></td></tr></table><br>
+<li><a href="http://www.pdfsam.org">PDF Split and Merge (PDF SaM)</a> is an even more powerful tool than jPDF Tweak and has a proven track record in pre-press environments. PDF SaM is rather a tool for professionals, whereas beginners will probably be overwhelmed by its many options. Like jPDF Tweak, PDF SaM is a Java program, but in contrast to all other Java programs in this list, the language of the graphical user interface can be changed. and there are many translations available.</li>
+<li><a href="http://www.quantumelephant.co.uk/bookbinder/bookbinder.html">Bookbinder</a> is a PDF editor for beginners and simple tasks. Its main purpose is to re-order (and re-scale, if necessary) pages in a PDF file for booklet printing and similar tasks. Bookbinder is also written in Java.</li><br>
+<table width="100%"><tr><td align="center"><img src="images/tb-bookbinder.png" alt="Bookbinder" title="Bookbinder" /></td></tr></table>
+</ul>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/toolbox3.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/toolbox3.html
==============================================================================
--- branches/ScribusOIF/doc/en/toolbox3.html (original)
+++ branches/ScribusOIF/doc/en/toolbox3.html Sat Oct  8 18:21:50 2011
@@ -6,9 +6,9 @@
 <body>
 <h2>Batik</h2>
 
-<p>Batik is actually a collection of Apache XML modules for on the fly export/conversion of SVG. One of the really useful tools in the collection is <strong>Squiggle</strong>, a Java application for simply viewing SVG. From my experience, this is a difficult application to compile on some distributions, so hopefully its packaged for you. </p>
+<p>Batik is a collection of Apache XML modules for on the fly export/conversion of SVG. One of the really useful tools in the collection is <strong>Squiggle</strong>, a Java application for simply viewing SVG. It may be difficult to compile Batik on some distributions, but fortunately there are packages for all major distrubtions and operating systems available. </p>
 
-<p>Why bother?  Call it the sober judge of SVG. Of all of the SVG viewers, it is probably one of, if not, the most spec compliant viewers. If you receive or create an SVG and it won't import properly, see how it views with Batik. If it does not display properly it is more than likely an issue with the creating application. The exception to this is SVG exported from Adobe Illustrator, which often has Adobe only extensions included in the SVG file, thus only viewable in Adobe SVG viewers or applications. As the saying goes, your mileage may vary.</p>
+<p>Why bother?  Call it the sober judge of SVG. Of all of the SVG viewers, it is probably one of, if not, the most spec-compliant viewers. If you receive or create an SVG and it won’t import properly, see how it looks in Batik. If it does not display properly it is more than likely an issue with the creating application. The exception to this are SVGs exported from Adobe Illustrator, which often have Adobe-only extensions included in the SVG file and may only be viewable in Adobe applications.</p>
 
 <table width="100%"><tr><td align="center"><img src="images/batik1.png" alt="Batik" /></td></tr></table>
 </body>

Modified: branches/ScribusOIF/doc/en/toolbox6.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/toolbox6.html
==============================================================================
--- branches/ScribusOIF/doc/en/toolbox6.html (original)
+++ branches/ScribusOIF/doc/en/toolbox6.html Sat Oct  8 18:21:50 2011
@@ -2,94 +2,53 @@
 <html><head>
   
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-  <title>GSview and Scribus</title>
+  <title>GSview</title>
 
   
 </head><body>
 <h2>GSview*</h2>
 
-<p>One important thing to note is that <a href="http://pages.cs.wisc.edu/%7Eghost/gsview/index.htm">GSview</a> <span style="font-style: italic;">must not be confused</span> with <strong style="font-weight: normal;">ghostview, gv and their derivatives!</strong>
-Although Adobe Reader® is often a better pure viewer for PDFs, GSview
-should be regarded as one of the most essential tools to have when
-using
-Scribus. GSview has some extremely useful functions. For those
-unfamiliar with the program, it provides an easy to use “front end” to
-Ghostscript, as well as <code>pstoedit</code> for converting bitmaps
-into vector files or vice versa. For those coming from a traditional
-DTP background in the Mac/Windows world, it also
-provides some of the functionality of Acrobat Distiller.<br>
+<p>One important thing to note is that <a href="http://pages.cs.wisc.edu/%7Eghost/gsview/index.htm">GSview</a> <b>must not be confused</b> with <strong style="font-weight: normal;">ghostview, gv and their derivatives!</strong> Although Adobe Reader is often a better pure viewer for PDFs, GSview should be regarded as one of the most essential tools to have when using Scribus. GSview has some extremely useful functions. For those unfamiliar with the program, it provides an easy-to-use “front end” to <a href="toolbox5.html">Ghostscript</a>, as well as <code>pstoedit</code> for converting bitmaps into vector files or vice versa. For those coming from a traditional DTP background in the Mac/Windows world, it also provides some of the functionality of Adobe Acrobat.<br>
 </p>
 
-<p>You should always use the latest version, at least 4.7. (GSview
-migrated from the
-Windows world, where it has been excellent since the 4.x versions.)</p>
+<p>You should always use the latest version, at least 4.7. (GSview migrated from the Windows world, where it has been excellent since the 4.x versions.)</p>
 
 <p>For use with Scribus, GSview has the following features:</p>
 
 <ul>
 
-  <li>With the help of <a href="http://pstoedit.net">pstoedit</a>, you
-can convert bitmap images or PDF content back into SVG and other
-scalable vector file formats.</li>
-  <li>The ability to preview, convert and add previews (TIFF
-recommended) for raw EPS (Encapsulated PostScript files).</li>
-  <li>The ability to extract text from a PDF.</li>
-  <li>The ability to preview, convert and add previews for raw
-PostScript files.</li>
-  <li>An easy-to-use front end to Ghostscript’s less well known
-features such as image conversion and re-sampling. There are other
-features in
-Ghostscript, including: converting between TIFF formats, changing the
-color depth of a TIFF, JPEG or the color space of an image.</li>
+  <li>With the help of <a href="http://pstoedit.net">pstoedit</a>, you can convert bitmap images or PDF content into SVG and other
+<a href="importhints.html">vector file formats</a>.</li>
+  <li>The ability to preview, convert and add previews (TIFF recommended) to PostScript and <a href="importhints1.html">EPS (Encapsulated PostScript) files</a>.</li>
+  <li>The ability to extract text from PDF, EPS and PostScript files.</li>
+  <li>An easy-to-use front end to Ghostscript’s less well-known features such as image conversion and re-sampling.</li>
+<li>Other features are: Converting between TIFF formats, changing the color depth of a TIFF or JPEG file or the color space of an image.</li>
 </ul>
 
-<p>One example where GSview is extremely useful with Scribus is
-troubleshooting or fixing EPS files that do not display correctly
-within
-Scribus. Although many applications can generate EPS files, some add
-their own quirks into the EPS, which can cause problems when used in
-other programs (like Scribus).</p>
+<table width="90%"><tr><td align="center"><img src="images/tb-gsview.png"></td></tr></table>
 
-<p>So, if you find difficulty with an EPS you wish to use in
-Scribus, open the EPS in GSview. Then, use the key command <strong>M</strong>
-to display messages from Ghostscript. The messages can indicate
-problems which cause display or printing errors. You can also use the <strong>epswrite</strong>
-“device” to re-save the EPS, which can help to strip out or fix issues
-with an EPS.</p>
+<p>One example where GSview is extremely useful with Scribus is troubleshooting or fixing EPS files that do not display correctly within Scribus. Although many applications can generate EPS files, some add their own quirks into the EPS, which can cause problems when used in other programs (like Scribus).</p>
 
-<p>You can also <em>rasterize</em> an EPS image, by converting it to
-PNG
-or TIFF and then resize, adjust colors etc with an image program like
-GIMP or Krita.<br>
+<p>So, if you find difficulty with an EPS you wish to use in Scribus, open the EPS in GSview. Then, use the key command <strong>M</strong> to display messages from Ghostscript. The messages can indicate problems which cause display or printing errors. You can also use the <strong>epswrite</strong>
+‘device’ from within GSview to re-save the EPS, which can help to strip out or fix issues with an EPS.</p>
+
+<p>You can also <em>rasterize</em> an EPS image, by converting it to PNG or TIFF and then resize, adjust colors etc with an image program like
+<a href="toolbox4.html">GIMP</a> or <a href="toolbox15.html">Krita</a>.<br>
 </p>
 
-<p> Note that GSview uses the <code>libgs.so</code> shared library to
-access Ghostscript. Not all Linux distributions ship this, so the hints
-for compiling Ghostscript with a paralell install really apply here. </p>
+<p> Note that GSview uses the <code>libgs.so</code> shared library to access Ghostscript. Not all Linux distributions ship this, so the hints for compiling Ghostscript with a paralell install really apply here. </p>
 
-<h4>Getting Gsview:</h4>
+<h4>Getting GSview:</h4>
 
-<p>GSview is available for most Linux distributions, at least the major
-ones. Otherwise you can build GSview by following
-the instructions provided in the <a href="http://pages.cs.wisc.edu/%7Eghost/">source package</a>. For
-Windows and OS/2 and eComStation you can download <a href="http://pages.cs.wisc.edu/%7Eghost/gsview/get49.htm">conventional
-installers</a> .
+<p>GSview is available for most Linux distributions, at least the major ones. Otherwise you can build GSview by following the instructions provided in the <a href="http://pages.cs.wisc.edu/%7Eghost/">source package</a>. For Windows, OS/2 and eComStation you can download <a href="http://pages.cs.wisc.edu/%7Eghost/gsview/get49.htm">conventional installers</a> .
 Unfortunately, there is no current version for Mac OS X available. </p>
 
-<p>A special note to users of OpenSUSE 11.3: The required GTK 1
-libraries are no longer available for this Linux distribution, but you
-can use the <a href="http://download.opensuse.org/repositories/GNOME:/GNOME1/openSUSE_11.2/i586/">versions
-compiled for 11.2</a>. You need to install the gtk-1.20 and glib
-packages (if you want to build GSview yourself, you also need the
-respective devel RPMs), as well as the <a href="http://download.opensuse.org/repositories/GNOME:/GNOME1/openSUSE_11.2/noarch/gtk-lang-1.2.10-1093.1.noarch.rpm">lang
-package</a>.<br>
+<p><i>A special note to users of OpenSUSE 11.3+</i>: The required GTK 1 libraries are no longer available for this Linux distribution, but you
+can use the <a href="http://download.opensuse.org/repositories/GNOME:/GNOME1/openSUSE_11.2/i586/">versions compiled for 11.2</a>. You need to install the gtk-1.20 and glib packages (if you want to build GSview yourself, you also need the respective devel RPMs), as well as the <a href="http://download.opensuse.org/repositories/GNOME:/GNOME1/openSUSE_11.2/noarch/gtk-lang-1.2.10-1093.1.noarch.rpm">lang package</a>.<br>
 </p>
 
-<p>Now, for advanced hints with GSview and Ghostscript, see: <a href="toolbox7.html">Advanced Ghostscript and GSview Hints</a></p>
+<p>For advanced hints regarding GSview and Ghostscript, see: <a href="toolbox7.html">Advanced Ghostscript & GSView</a>.</p>
 
-<p>*) <span style="font-style: italic;">Parts of this section are
-thanks to Russell Lang, author and maintainer of GSview, epstool and
-Ghostscript for his hints and patiently answering questions about
-GSview and Ghostscript.</span></p>
+<p>*) <span style="font-style: italic;">Parts of this section are thanks to Russell Lang, author and maintainer of GSview, epstool and Ghostscript for his hints and patiently answering questions about GSview and Ghostscript.</span></p>
 
 </body></html>

Modified: branches/ScribusOIF/doc/en/toolbox8.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/toolbox8.html
==============================================================================
--- branches/ScribusOIF/doc/en/toolbox8.html (original)
+++ branches/ScribusOIF/doc/en/toolbox8.html Sat Oct  8 18:21:50 2011
@@ -1,16 +1,16 @@
 <html>
 <head>
 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-	<title>Imagemagick</title>
+	<title>ImageMagick</title>
 </head>
 <body>
-<h2>Imagemagick</h2>
-<p>Is a command-line image converter processor. While it does have a GUI display called Display, it is powerful in three ways:</p>
+<h2>ImageMagick</h2>
+<p>ImageMagick is a command-line image converter. While it does have a GUI display called “Display”, its power shows in three ways:</p>
 
-<ul><li>A batch conversion application.</li>
-<li>Ability to handle a wide range of image formats.</li>
-<li>The newest versions understand color management and use littlecms, just like Scribus.</li></ul>
+<ol><li> As a batch conversion application.</li>
+<li> It can handle a wide range of image formats.</li>
+<li> The newest versions understand color management and use littleCMS, just like Scribus.</li></ol>
 
-<p>Imagemagick is kind of a black box for image processing, but incredibly powerful when used properly. Versions for Linux, Windows and MacOSX are available.</p>
+<p>ImageMagick is some kind of a black box for image processing, but incredibly powerful when used properly. Versions for Linux, Windows and MacOSX are available.</p>
 </body>
 </html>

Modified: branches/ScribusOIF/doc/en/toolbox9.html
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/doc/en/toolbox9.html
==============================================================================
--- branches/ScribusOIF/doc/en/toolbox9.html (original)
+++ branches/ScribusOIF/doc/en/toolbox9.html Sat Oct  8 18:21:50 2011
@@ -5,16 +5,16 @@
 </head>
 <body>
 <h2>Inkscape</h2>
-<p><em>Disclaimer: I am technically one of the Inkscape Team members, though mostly to liaise with them and build rpms. However, I would not bother a: If Inkscape was not such a terrific application with a really bright future. b: The Inkscape Team was not a really great bunch to work with. Inkscape's development is an excellent model for OSS developers to follow.</em></p>
 
-<p>That said, Inkscape is rapidly becoming the leading OSS SVG vector drawing or "illustration" tool. The Inkscape Team has made a lot of effort to faithfully adhere to the W3C SVG specs. The most recent version has made a lot of progress and has new import/export options. Some more experimental than others. </p>
+<p>Inkscape has rapidly become one of the most important Open Source vector drawing or “illustration” tools for creative people. The Inkscape Team has made a lot of efforts to faithfully adhere to the W3C SVG specs. The most recent versions have made a lot of progress and provide a wide range of improvements, including color management, one of the best tracing tools and many features to make the life of designers easier. Like Scribus, Inkscape can easily be extended via Python scripts.</p>
 
-<p>In its favor: A very friendly user interface, with extensive tool tips and a couple of really well done short tutorials on vector drawings. Almost every function can be handled by keyboard short cuts (the list of shortcuts is almost 10 pages). Like Scribus, the Inkscape Team is quick with bug fixes and is very open minded about feature requests and enhancements.</p>
+<table width="90%"><tr><td align="center"><img src="images/tb-inkscape.png"></td></tr></table>
 
-<p>The best part of Inkscape though it is its fidelity to SVG specs. No, it is not perfect, no application is, however. Inkscape SVG seems to work well with other SVG applications better than most, even some expensive commercial ones. </p>
+<p>Inkscape has a very friendly user interface, with extensive tool tips and a couple of really well done short tutorials on vector drawings. Almost every function can be handled by keyboard shortcuts (the list of shortcuts is almost 10 pages!). Like Scribus, the Inkscape Team is quick with bug fixes and is very open-minded about feature requests and enhancements.</p>
 
-<p>For the most part, Inkscape SVG artwork will import into Scribus easily. There are some SVG features which are not yet supported by Scribus (patterns), however 99% of the time, It Just Works TM. If a file does not seem to import correctly into Scribus, try saving as "Plain SVG" within Inkscape. One other hint for working with Inkscape SVG is the SVG model for working with text is far different than the PDF/PostScript model. (One of the few weak spots in the spec in my opinion.)  Save text input and text effects for Scribus. Scribus does a very good job of offering you a multitude of text effects and it will output them faithfully. Scribus uses the freetype2 libraries and this gives you a wide range of effects.</p>
+<p>The best part of Inkscape, though, is its fidelity to the SVG specifications. No, it is not perfect, no application is, however, Inkscape SVG seems to work with other SVG applications better than most, even some expensive commercial ones. </p>
 
-<p>That does not mean Inkscape does it wrong.  Only that the way it is done in SVG and within a PostScript oriented application are sometimes very different and difficult to translate from one to the other. Actually, Inkscape does an excellent job of support for SVG font features including kerning and other advanced features.</p>
+<p>For the most part, Inkscape SVG artwork will import into Scribus easily. There are some SVG features which are not yet supported by Scribus (like patterns or drop shadows), however 99% of the time, “It Just Works™”. If a file does not seem to import correctly into Scribus, try saving as "Plain SVG" from within Inkscape.</p>
+<p>See the section on <a href="scribus-svg.html">importing SVG</a> for more information.</p>
 </body>
 </html>

Modified: branches/ScribusOIF/scribus/CMakeLists.txt
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/CMakeLists.txt
==============================================================================
--- branches/ScribusOIF/scribus/CMakeLists.txt (original)
+++ branches/ScribusOIF/scribus/CMakeLists.txt Sat Oct  8 18:21:50 2011
@@ -81,6 +81,8 @@
   ui/gtfiledialog.ui
   ui/guidemanager.ui
   ui/insertaframe.ui
+  ui/inserttablecolumnsdialog.ui
+  ui/inserttablerowsdialog.ui
   ui/latexeditor.ui
   ui/newmarginwidgetbase.ui
   ui/measurementsbase.ui
@@ -126,6 +128,7 @@
   ui/propertiespalette_imagebase.ui
   ui/propertiespalette_linebase.ui
   ui/propertiespalette_shapebase.ui
+  ui/propertiespalette_tablebase.ui
   ui/propertiespalette_textbase.ui
   ui/propertiespalette_xyzbase.ui
   ui/propertywidget_advancedbase.ui
@@ -147,14 +150,18 @@
   ui/replaceonecolor.ui
   ui/selectobjects.ui
   ui/shortcutwidget.ui
+  ui/smcellstylewidget.ui
   ui/smcstylewidget.ui
   ui/smlinestylewidget.ui
+  ui/smtablestylewidget.ui
   ui/smpstylewidget.ui
   ui/smreplacedia.ui
   ui/smstyleimport.ui
   ui/spiralvectorbase.ui
   ui/spiralwidgetbase.ui
   ui/stylemanager.ui
+  ui/tablecolumnwidthsdialog.ui
+  ui/tablerowheightsdialog.ui
   ui/transformdialogbase.ui
   ui/transparencypalette.ui
   ui/copypagetomasterpage.ui
@@ -170,12 +177,18 @@
 SET(SCRIBUS_MOC_CLASSES
   actionmanager.h
   canvas.h
+  canvasgesture_cellselect.h
+  canvasgesture_columnresize.h
+  canvasgesture_rowresize.h
   canvasgesture_rulermove.h
+  canvasgesture_table.h
+  canvasgesture_tableresize.h
   canvasmode.h
   canvasmode_edit.h
   canvasmode_editarc.h
   canvasmode_editpolygon.h
   canvasmode_editspiral.h
+  canvasmode_edittable.h
   canvasmode_measurements.h
   canvasmode_normal.h
   chartablemodel.h
@@ -210,6 +223,7 @@
   pageitem_regularpolygon.h
   pageitem_spiral.h
   pageitem_symbol.h
+  pageitem_table.h
   pageitem_textframe.h
   pageitempointer.h
   pdf_analyzer.h
@@ -294,6 +308,8 @@
   ui/imageinfodialog.h
   ui/insertTable.h
   ui/insertaframe.h
+  ui/inserttablecolumnsdialog.h
+  ui/inserttablerowsdialog.h
   ui/inspage.h
   ui/javadocs.h
   ui/latexeditor.h
@@ -367,6 +383,7 @@
   ui/propertiespalette_image.h
   ui/propertiespalette_line.h
   ui/propertiespalette_shape.h
+  ui/propertiespalette_table.h
   ui/propertiespalette_text.h
   ui/propertiespalette_utils.h
   ui/propertiespalette_xyz.h
@@ -409,9 +426,12 @@
   ui/shadebutton.h
   ui/shortcutwidget.h
   ui/smalignselect.h
+  ui/smcellstylewidget.h
+  ui/smcellstyle.h
   ui/smcheckbox.h
   ui/smcolorcombo.h
   ui/smcstylewidget.h
+  ui/smtablestylewidget.h
   ui/smfontcomboh.h
   ui/smlinestyle.h
   ui/smlinestylewidget.h
@@ -423,6 +443,7 @@
   ui/smspinbox.h
   ui/smstyleimport.h
   ui/smstyleselect.h
+  ui/smtablestyle.h
   ui/smtabruler.h
   ui/smtextstyles.h
   ui/spalette.h
@@ -434,6 +455,9 @@
   ui/styleview.h
   ui/swatchcombo.h
   ui/symbolpalette.h
+  ui/tablecolumnwidthsdialog.h
+  ui/tablesideselector.h
+  ui/tablerowheightsdialog.h
   ui/tabmanager.h
   ui/tabpdfoptions.h
   ui/tabruler.h
@@ -456,11 +480,16 @@
 SET(SCRIBUS_SOURCES
   actionmanager.cpp
   canvas.cpp
+  canvasgesture_cellselect.cpp
+  canvasgesture_columnresize.cpp
   canvasgesture_linemove.cpp
   canvasgesture_pan.cpp
   canvasgesture_rectselect.cpp
   canvasgesture_resize.cpp
+  canvasgesture_rowresize.cpp
   canvasgesture_rulermove.cpp
+  canvasgesture_table.cpp
+  canvasgesture_tableresize.cpp
   canvasmode.cpp
   canvasmode_copyproperties.cpp
   canvasmode_create.cpp
@@ -475,6 +504,7 @@
   canvasmode_editmeshgradient.cpp
   canvasmode_editpolygon.cpp
   canvasmode_editspiral.cpp
+  canvasmode_edittable.cpp
   canvasmode_magnifier.cpp
   canvasmode_measurements.cpp
   canvasmode_nodeedit.cpp
@@ -482,10 +512,12 @@
   canvasmode_objimport.cpp
   canvasmode_panning.cpp
   canvasmode_rotate.cpp
+  cellarea.cpp
   chartablemodel.cpp
   chartableview.cpp
   cmserrorhandling.cpp
   cmsettings.cpp
+  collapsedtablepainter.cpp
   collect4output.cpp
   colorblind.cpp
   colorsetmanager.cpp
@@ -542,6 +574,7 @@
   pageitem_regularpolygon.cpp
   pageitem_spiral.cpp
   pageitem_symbol.cpp
+  pageitem_table.cpp
   pageitem_textframe.cpp
   pageitempointer.cpp
   pagesize.cpp
@@ -622,6 +655,9 @@
   selection.cpp
   serializer.cpp
   styleitem.cpp
+  tableborder.cpp
+  tablecell.cpp
+  tableutils.cpp
   textwriter.cpp
   tocgenerator.cpp
   transaction.cpp
@@ -700,6 +736,8 @@
   ui/imageinfodialog.cpp
   ui/insertTable.cpp
   ui/insertaframe.cpp
+  ui/inserttablecolumnsdialog.cpp
+  ui/inserttablerowsdialog.cpp
   ui/inspage.cpp
   ui/javadocs.cpp
   ui/latexeditor.cpp
@@ -774,6 +812,7 @@
   ui/propertiespalette_group.cpp
   ui/propertiespalette_line.cpp
   ui/propertiespalette_shape.cpp
+  ui/propertiespalette_table.cpp
   ui/propertiespalette_text.cpp
   ui/propertiespalette_utils.cpp
   ui/propertiespalette_xyz.cpp
@@ -819,6 +858,8 @@
   ui/shadebutton.cpp
   ui/shortcutwidget.cpp
   ui/smalignselect.cpp
+  ui/smcellstylewidget.cpp
+  ui/smcellstyle.cpp
   ui/smcheckbox.cpp
   ui/smcolorcombo.cpp
   ui/smcstylewidget.cpp
@@ -834,6 +875,8 @@
   ui/smspinbox.cpp
   ui/smstyleimport.cpp
   ui/smstyleselect.cpp
+  ui/smtablestylewidget.cpp
+  ui/smtablestyle.cpp
   ui/smtabruler.cpp
   ui/smtextstyles.cpp
   ui/spalette.cpp
@@ -846,6 +889,9 @@
   ui/styleview.cpp
   ui/swatchcombo.cpp
   ui/symbolpalette.cpp
+  ui/tablecolumnwidthsdialog.cpp
+  ui/tablerowheightsdialog.cpp
+  ui/tablesideselector.cpp
   ui/tabmanager.cpp
   ui/tabpdfoptions.cpp
   ui/tabruler.cpp

Modified: branches/ScribusOIF/scribus/actionmanager.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/actionmanager.cpp
==============================================================================
--- branches/ScribusOIF/scribus/actionmanager.cpp (original)
+++ branches/ScribusOIF/scribus/actionmanager.cpp Sat Oct  8 18:21:50 2011
@@ -429,6 +429,30 @@
 	scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
 	name="itemUpdateImage";
 	scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+	name="tableInsertRows";
+	scrActions->insert(name, new ScrAction(loadIcon("16/insert-table-rows.png"), loadIcon("22/insert-table-rows.png"), "", defaultKey(name), mainWindow));
+	name="tableInsertColumns";
+	scrActions->insert(name, new ScrAction(loadIcon("16/insert-table-columns.png"), loadIcon("22/insert-table-columns.png"), "", defaultKey(name), mainWindow));
+	name="tableDeleteRows";
+	scrActions->insert(name, new ScrAction(loadIcon("16/delete-table-rows.png"), loadIcon("22/delete-table-rows.png"), "", defaultKey(name), mainWindow));
+	name="tableDeleteColumns";
+	scrActions->insert(name, new ScrAction(loadIcon("16/delete-table-columns.png"), loadIcon("22/delete-table-columns.png"), "", defaultKey(name), mainWindow));
+	name="tableMergeCells";
+	scrActions->insert(name, new ScrAction(loadIcon("16/merge-table-cells.png"), loadIcon("22/merge-table-cells.png"), "", defaultKey(name), mainWindow));
+	name="tableSplitCells";
+	scrActions->insert(name, new ScrAction(loadIcon("16/split-table-cells.png"), loadIcon("22/split-table-cells.png"), "", defaultKey(name), mainWindow));
+	name="tableSetRowHeights";
+	scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+	name="tableSetColumnWidths";
+	scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+	name="tableDistributeRowsEvenly";
+	scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+	name="tableDistributeColumnsEvenly";
+	scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+	name="tableAdjustFrameToTable";
+	scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+	name = "tableAdjustTableToFrame";
+	scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
 	name="itemAdjustFrameToImage";
 	scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
 	name = "itemAdjustImageToFrame";
@@ -709,6 +733,8 @@
 	scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/insert-renderframe.png"), loadIcon("22/insert-renderframe.png"), "", defaultKey(name), mainWindow, modeDrawLatex));
 	name="toolsInsertTableFrame";
 	scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/insert-table.png"), loadIcon("22/insert-table.png"), "", defaultKey(name), mainWindow, modeDrawTable));
+	name="toolsInsertTable";
+	scrActions->insert(name, new ScrAction(ScrAction::DataInt, loadIcon("16/insert-table.png"), loadIcon("22/insert-table.png"), "", defaultKey(name), mainWindow, modeDrawTable2));
 	name="toolsInsertShape";
 	scrActions->insert(name, new ScrAction(ScrAction::DataInt, QPixmap(), QPixmap(), "", defaultKey(name), mainWindow, modeDrawShapes));
 	name="toolsInsertPolygon";
@@ -795,7 +821,7 @@
 	(*scrActions)["toolsToolbarTools"]->setToggleAction(true);
 	(*scrActions)["toolsToolbarPDF"]->setToggleAction(true);
 
-	*modeActionNames << "toolsSelect" << "toolsInsertTextFrame" << "toolsInsertImageFrame" << "toolsInsertTableFrame";
+	*modeActionNames << "toolsSelect" << "toolsInsertTextFrame" << "toolsInsertImageFrame" << "toolsInsertTableFrame" << "toolsInsertTable";
 	*modeActionNames << "toolsInsertShape" << "toolsInsertPolygon" << "toolsInsertArc" << "toolsInsertSpiral" << "toolsInsertLine" << "toolsInsertBezier";
 	*modeActionNames << "toolsInsertFreehandLine" << "toolsInsertCalligraphicLine" << "toolsInsertRenderFrame" << "toolsRotate" << "toolsZoom" << "toolsEditContents";
 	*modeActionNames << "toolsEditWithStoryEditor" << "toolsLinkTextFrame" << "toolsUnlinkTextFrame";
@@ -1066,6 +1092,18 @@
 
 void ActionManager::disconnectNewDocActions()
 {
+	disconnect( (*scrActions)["tableInsertRows"], 0, 0, 0 );
+	disconnect( (*scrActions)["tableInsertColumns"], 0, 0, 0 );
+	disconnect( (*scrActions)["tableDeleteRows"], 0, 0, 0 );
+	disconnect( (*scrActions)["tableDeleteColumns"], 0, 0, 0 );
+	disconnect( (*scrActions)["tableMergeCells"], 0, 0, 0 );
+	disconnect( (*scrActions)["tableSplitCells"], 0, 0, 0 );
+	disconnect( (*scrActions)["tableSetRowHeights"], 0, 0, 0 );
+	disconnect( (*scrActions)["tableSetColumnWidths"], 0, 0, 0 );
+	disconnect( (*scrActions)["tableDistributeRowsEvenly"], 0, 0, 0 );
+	disconnect( (*scrActions)["tableDistributeColumnsEvenly"], 0, 0, 0 );
+	disconnect( (*scrActions)["tableAdjustFrameToTable"], 0, 0, 0 );
+	disconnect( (*scrActions)["tableAdjustTableToFrame"], 0, 0, 0 );
 	disconnect( (*scrActions)["itemAdjustFrameToImage"], 0, 0, 0 );
 	disconnect( (*scrActions)["itemAdjustImageToFrame"], 0, 0, 0 );
 	disconnect( (*scrActions)["itemLock"], 0, 0, 0);
@@ -1097,6 +1135,18 @@
 	connect( (*scrActions)["extrasHyphenateText"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_DoHyphenate()) );
 	connect( (*scrActions)["extrasDeHyphenateText"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_DoDeHyphenate()) );
 	connect( (*scrActions)["itemDelete"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_DeleteItem()) );
+	connect( (*scrActions)["tableInsertRows"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_InsertTableRows()));
+	connect( (*scrActions)["tableInsertColumns"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_InsertTableColumns()));
+	connect( (*scrActions)["tableDeleteRows"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_DeleteTableRows()));
+	connect( (*scrActions)["tableDeleteColumns"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_DeleteTableColumns()));
+	connect( (*scrActions)["tableMergeCells"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_MergeTableCells()));
+	connect( (*scrActions)["tableSplitCells"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_SplitTableCells()));
+	connect( (*scrActions)["tableSetRowHeights"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_SetTableRowHeights()));
+	connect( (*scrActions)["tableSetColumnWidths"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_SetTableColumnWidths()));
+	connect( (*scrActions)["tableDistributeRowsEvenly"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_DistributeTableRowsEvenly()));
+	connect( (*scrActions)["tableDistributeColumnsEvenly"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_DistributeTableColumnsEvenly()));
+	connect( (*scrActions)["tableAdjustFrameToTable"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_AdjustFrameToTable()));
+	connect( (*scrActions)["tableAdjustTableToFrame"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_AdjustTableToFrame()));
 	connect( (*scrActions)["itemAdjustFrameToImage"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_AdjustFrametoImageSize()) );
 	connect( (*scrActions)["itemAdjustImageToFrame"], SIGNAL(triggered()), currDoc, SLOT(itemSelection_AdjustImagetoFrameSize()) );
 }
@@ -1388,6 +1438,18 @@
 	(*scrActions)["itemImageInfo"]->setTexts( tr("More Info..."));
 	(*scrActions)["itemImageIsVisible"]->setTexts( tr("I&mage Visible"));
 	(*scrActions)["itemUpdateImage"]->setTexts( tr("&Update Image"));
+	(*scrActions)["tableInsertRows"]->setTexts(tr("Insert Rows..."));
+	(*scrActions)["tableInsertColumns"]->setTexts(tr("Insert Columns..."));
+	(*scrActions)["tableDeleteRows"]->setTexts(tr("Delete Rows"));
+	(*scrActions)["tableDeleteColumns"]->setTexts(tr("Delete Columns"));
+	(*scrActions)["tableMergeCells"]->setTexts(tr("Merge Cells"));
+	(*scrActions)["tableSplitCells"]->setTexts(tr("Split Cells..."));
+	(*scrActions)["tableSetRowHeights"]->setTexts(tr("Set Row Heights..."));
+	(*scrActions)["tableSetColumnWidths"]->setTexts(tr("Set Column Widths..."));
+	(*scrActions)["tableDistributeRowsEvenly"]->setTexts(tr("Distribute Rows Evenly"));
+	(*scrActions)["tableDistributeColumnsEvenly"]->setTexts(tr("Distribute Columns Evenly"));
+	(*scrActions)["tableAdjustFrameToTable"]->setTexts(tr("Adjust Frame to Table"));
+	(*scrActions)["tableAdjustTableToFrame"]->setTexts(tr("Adjust Table to Frame"));
 	(*scrActions)["itemAdjustFrameToImage"]->setTexts( tr("Adjust Frame to Image"));
 	(*scrActions)["itemAdjustImageToFrame"]->setTexts( tr("Adjust Image to Frame"));
 	(*scrActions)["itemToggleInlineImage"]->setTexts( tr("Embed Image"));
@@ -1488,6 +1550,7 @@
 	(*scrActions)["toolsInsertImageFrame"]->setText( tr("Insert &Image Frame"));
 	(*scrActions)["toolsInsertRenderFrame"]->setText( tr("Insert &Render Frame"));
 	(*scrActions)["toolsInsertTableFrame"]->setText( tr("Insert T&able"));
+	(*scrActions)["toolsInsertTable"]->setText( tr("Insert Table 2"));
 	(*scrActions)["toolsInsertShape"]->setText( tr("Insert &Shape"));
 	(*scrActions)["toolsInsertPolygon"]->setText( tr("Insert &Polygon"));
 	(*scrActions)["toolsInsertArc"]->setText( tr("Insert Arc"));
@@ -1848,6 +1911,18 @@
 		<< "itemLockSize" 
 		<< "itemImageIsVisible" 
 		<< "itemUpdateImage" 
+		<< "tableInsertRows"
+		<< "tableInsertColumns"
+		<< "tableDeleteRows"
+		<< "tableDeleteColumns"
+		<< "tableMergeCells"
+		<< "tableSplitCells"
+		<< "tableSetRowHeights"
+		<< "tableSetColumnWidths"
+		<< "tableDistributeRowsEvenly"
+		<< "tableDistributeColumnsEvenly"
+		<< "tableAdjustFrameToTable"
+		<< "tableAdjustTableToFrame"
 		<< "itemAdjustFrameToImage" 
 		<< "itemAdjustImageToFrame" 
 		<< "itemToggleInlineImage" 
@@ -1882,6 +1957,7 @@
 		<< "toolsInsertTextFrame"
 		<< "toolsInsertImageFrame"
 		<< "toolsInsertTableFrame"
+		<< "toolsInsertTable"
 		<< "toolsInsertShape"
 		<< "toolsInsertPolygon"
 		<< "toolsInsertArc"

Modified: branches/ScribusOIF/scribus/canvas.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvas.cpp
==============================================================================
--- branches/ScribusOIF/scribus/canvas.cpp (original)
+++ branches/ScribusOIF/scribus/canvas.cpp Sat Oct  8 18:21:50 2011
@@ -494,6 +494,19 @@
 		--currNr;
 	}
 	return NULL;
+}
+
+bool Canvas::cursorOverTextFrameControl(QPoint globalPos, PageItem* frame)
+{
+	FPoint mp=globalToCanvas(globalPos);
+	qreal sideLength = 10 / qMax(m_viewMode.scale, 1.0);
+	qreal left  = frame->xPos() + frame->width() - sideLength;// / 2;
+	qreal right = left + sideLength;
+	qreal top   = frame->yPos() + frame->height() - sideLength;// * 1.5;
+	qreal bottom = top + sideLength;
+	if(mp.x()>left && mp.x()<right && mp.y()>top && mp.y()<bottom)
+		return true;
+	return false;
 }
 
 PageItem* Canvas::itemInGroup(PageItem* group, QTransform itemPos, QRectF mouseArea) const
@@ -1775,6 +1788,8 @@
 	double pageHeight=page->height();
 	double pageWidth=page->width();
 	p->setFillMode(ScPainter::None);
+	p->setStrokeMode(ScPainter::Solid);
+
 	p->setPen(Qt::black, lineWidth, Qt::SolidLine, Qt::FlatCap, Qt::MiterJoin);
 	p->drawRect(0, 0, pageWidth, pageHeight);
 	//Draw the margins
@@ -2224,6 +2239,13 @@
 	QToolTip::showText(m + QPoint(5, 5), tr("Angle: %1").arg(value2String(rot, SC_DEGREES, true, true)), this);
 }
 
+void Canvas::displayDoubleHUD(QPoint point, const QString& label, double value)
+{
+	if (!PrefsManager::instance()->appPrefs.displayPrefs.showMouseCoordinates)
+		return;
+	QToolTip::showText(point + QPoint(5, 5), QString("%1: %2").arg(label, value2String(value, m_doc->unitIndex(), true, true)), this);
+}
+
 void Canvas::setupEditHRuler(PageItem * item, bool forceAndReset)
 {
 	static QString rulerItemRef;

Modified: branches/ScribusOIF/scribus/canvas.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvas.h
==============================================================================
--- branches/ScribusOIF/scribus/canvas.h (original)
+++ branches/ScribusOIF/scribus/canvas.h Sat Oct  8 18:21:50 2011
@@ -95,6 +95,7 @@
 	friend class CanvasMode_EditMeshGradient;
 	friend class CanvasMode_EditPolygon;
 	friend class CanvasMode_EditSpiral;
+	friend class CanvasMode_EditTable;
 	friend class CanvasMode_EyeDropper;
 	friend class CanvasMode_FrameLinks;
 	friend class CanvasMode_Magnifier;
@@ -159,7 +160,8 @@
 //	QRectF globalToCanvas(QRectF p) const;
 	bool hitsCanvasPoint(QPoint globalPoint, FPoint canvasPoint) const;
 	bool hitsCanvasPoint(QPoint globalPoint, QPointF canvasPoint) const;
-	QRect exposedRect()const;
+	QRect exposedRect() const;
+	bool cursorOverTextFrameControl(QPoint globalPos, PageItem* frame);
 	/** Returns the framehandle or INSIDE if the position falls into the frame. */
 	FrameHandle frameHitTest(QPointF canvasPoint, PageItem* frame) const;
 	FrameHandle frameHitTest(QPointF point, QRectF frame) const;
@@ -197,7 +199,13 @@
 	void displaySizeHUD(QPoint m, double x, double y, bool isLine = false);
 	void displayRotHUD(QPoint m, double rot);
 	void displayRealRotHUD(QPoint m, double rot);
-	
+	/**
+	 * Displays a tooltip of the format <code>{label}: {N} {unit}</code> where <code>N</code> is
+	 * @a value converted to the current document unit and <code>unit</code> the current document
+	 * unit. The tooltip will be displayed nearby the global point @a point.
+	 */
+		void displayDoubleHUD(QPoint point, const QString& label, double value);
+
 	void setupEditHRuler(PageItem * item, bool forceAndReset = false);
 	
 private:

Modified: branches/ScribusOIF/scribus/canvasgesture.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasgesture.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasgesture.h (original)
+++ branches/ScribusOIF/scribus/canvasgesture.h Sat Oct  8 18:21:50 2011
@@ -47,10 +47,11 @@
 class SCRIBUS_API CanvasGesture : public CanvasMode
 {
 protected:
-	CanvasGesture (CanvasMode* parent) : CanvasMode(parent->view()), m_delegate(parent) {};
-	CanvasGesture (ScribusView* view) : CanvasMode(view), m_delegate(NULL) {};
+	explicit CanvasGesture (CanvasMode* parent) : CanvasMode(parent->view()), m_delegate(parent) {};
+	explicit CanvasGesture (ScribusView* view) : CanvasMode(view), m_delegate(NULL) {};
 	
-public:	
+public:
+	virtual ~CanvasGesture() {}
 	virtual void enterEvent(QEvent * e) { m_delegate->enterEvent(e); }
 	virtual void leaveEvent(QEvent * e) { m_delegate->leaveEvent(e); }
 

Modified: branches/ScribusOIF/scribus/canvasgesture_linemove.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasgesture_linemove.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasgesture_linemove.h (original)
+++ branches/ScribusOIF/scribus/canvasgesture_linemove.h Sat Oct  8 18:21:50 2011
@@ -49,8 +49,8 @@
 class SCRIBUS_API LineMove : public CanvasGesture
 {
 public:
-	LineMove (CanvasMode* parent): CanvasGesture(parent), m_haveLineItem(false), m_bounds(0,0,0,0) {};
-	~LineMove() {}
+	explicit LineMove (CanvasMode* parent): CanvasGesture(parent), m_haveLineItem(false), m_bounds(0,0,0,0) {}
+	virtual ~LineMove() {}
 	
 	/**
 		Prepare a LineMove without attached PageItem

Modified: branches/ScribusOIF/scribus/canvasgesture_pan.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasgesture_pan.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasgesture_pan.h (original)
+++ branches/ScribusOIF/scribus/canvasgesture_pan.h Sat Oct  8 18:21:50 2011
@@ -26,8 +26,8 @@
 class SCRIBUS_API PanGesture : public CanvasGesture
 {
 public:
-	PanGesture (CanvasMode* parent);
-	~PanGesture() {}
+	explicit PanGesture (CanvasMode* parent);
+	virtual ~PanGesture() {}
 	
 	virtual void activate(bool);
 	virtual void deactivate(bool);

Modified: branches/ScribusOIF/scribus/canvasgesture_rectselect.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasgesture_rectselect.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasgesture_rectselect.h (original)
+++ branches/ScribusOIF/scribus/canvasgesture_rectselect.h Sat Oct  8 18:21:50 2011
@@ -48,7 +48,8 @@
 class SCRIBUS_API RectSelect : public CanvasGesture
 {
 public:
-	RectSelect (CanvasMode* parent) : CanvasGesture(parent), m_start(0,0), m_rectangle(0) {};
+	explicit RectSelect (CanvasMode* parent) : CanvasGesture(parent), m_start(0,0), m_rectangle(0) {};
+	virtual ~RectSelect() {}
 	
 	void prepare(QPoint globalStartPos);
 	void clear();

Modified: branches/ScribusOIF/scribus/canvasgesture_resize.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasgesture_resize.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasgesture_resize.h (original)
+++ branches/ScribusOIF/scribus/canvasgesture_resize.h Sat Oct  8 18:21:50 2011
@@ -47,7 +47,8 @@
 class SCRIBUS_API ResizeGesture : public CanvasGesture
 {
 public:
-	ResizeGesture (CanvasMode* parent);
+	explicit ResizeGesture (CanvasMode* parent);
+	virtual ~ResizeGesture() {}
 	
 	/**
 		Prepares the gesture for resizing the selection

Modified: branches/ScribusOIF/scribus/canvasgesture_rulermove.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasgesture_rulermove.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasgesture_rulermove.h (original)
+++ branches/ScribusOIF/scribus/canvasgesture_rulermove.h Sat Oct  8 18:21:50 2011
@@ -48,6 +48,7 @@
 	enum Mode { HORIZONTAL, VERTICAL, ORIGIN };
 	RulerGesture (ScribusView* view, Mode mode) : 
 		CanvasGesture(view), m_ScMW(m_view->m_ScMW), m_mode(mode), m_haveGuide(false), m_haveCursor(false), m_xy(0,0) {};
+	virtual ~RulerGesture() {}
 
 	/**
 		Prepares the gesture for 'mode' without using an existing guide. If 'mode' is HORIZONTAL

Modified: branches/ScribusOIF/scribus/canvasmode.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode.cpp
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode.cpp (original)
+++ branches/ScribusOIF/scribus/canvasmode.cpp Sat Oct  8 18:21:50 2011
@@ -29,6 +29,7 @@
 #include "canvasmode_editmeshgradient.h"
 #include "canvasmode_editpolygon.h"
 #include "canvasmode_editspiral.h"
+#include "canvasmode_edittable.h"
 #include "canvasmode_eyedropper.h"
 #include "canvasmode_framelinks.h"
 #include "canvasmode_magnifier.h"
@@ -42,8 +43,10 @@
 #include "pageitempreview.h"
 #endif
 #include "pageitem_group.h"
+#include "pageitem_textframe.h"
 #include "prefsmanager.h"
 #include "selection.h"
+#include "sccolorengine.h"
 #include "scpainter.h"
 #include "scraction.h"
 #include "scribus.h"
@@ -63,7 +66,7 @@
 #include <QMdiArea>
 #include <QMdiSubWindow>
 #include <QPainter>
-
+#include <QPointF>
 
 CanvasMode::CanvasMode (ScribusView* view) :
 	QObject(),
@@ -139,6 +142,7 @@
 		case modeDrawLatex:
 		case modeDrawText:
 		case modeDrawTable:
+		case modeDrawTable2:
 		case modeDrawRegularPolygon:
 		case modeDrawArc:
 		case modeDrawSpiral:
@@ -182,6 +186,9 @@
 			break;
 		case modeEditSpiral:
 			result = new CanvasMode_EditSpiral(view);
+			break;
+		case modeEditTable:
+			result = new CanvasMode_EditTable(view);
 			break;
 			// more modes as they are defined...
 			
@@ -606,6 +613,9 @@
 			qApp->changeOverrideCursor(QCursor(loadIcon("DrawTextFrame.xpm")));
 			break;
 		case modeDrawTable:
+			qApp->changeOverrideCursor(QCursor(loadIcon("DrawTable.xpm")));
+			break;
+		case modeDrawTable2:
 			qApp->changeOverrideCursor(QCursor(loadIcon("DrawTable.xpm")));
 			break;
 		case modeDrawRegularPolygon:
@@ -721,6 +731,147 @@
 		drawOutline(p);
 	else
 		drawSelection(p, drawHandles);
+}
+
+void CanvasMode::commonDrawTextCursor(QPainter* p, PageItem_TextFrame* textframe, const QPointF& offset)
+{
+	double dx, dy, dy1;
+	QPen cPen ( Qt::black, 0.9 , Qt::SolidLine, Qt::FlatCap, Qt::MiterJoin );
+
+	// normalize Current Position
+	textframe->itemText.normalizeCursorPosition();
+	int textCursorPos ( textframe->itemText.cursorPosition() );
+
+	if ( textframe->lastInFrame() >= signed ( textframe->itemText.length() )
+		 || textframe->itemText.length() == 0 )
+	{
+		dx = textframe->textToFrameDistLeft();
+		dy = textframe->textToFrameDistTop();
+		dy1 = textframe->textToFrameDistTop() + (textframe->itemText.defaultStyle().charStyle().fontSize() / 10.0);
+
+		cPen.setColor ( ScColorEngine::getRGBColor ( m_doc->PageColors[textframe->itemText.defaultStyle().charStyle().fillColor() ], m_doc ) );
+	}
+	else if ( textCursorPos > textframe->lastInFrame() )
+	{
+		// Happens often when typing directly into frame.
+		// And the cursor curses nothing, vertigo.
+		textCursorPos = qMax(0, textframe->lastInFrame());
+		QChar textCursorChar = textframe->itemText.text(textCursorPos);
+		if (textCursorChar == SpecialChars::PARSEP || textCursorChar == SpecialChars::LINEBREAK)
+		{
+			// The cursor must be moved to the beginning of the next line
+			FRect bbox = textframe->textLayout->boundingBox ( textCursorPos );
+			double lineSpacing(textframe->itemText.paragraphStyle(textCursorPos).lineSpacing());
+
+			// take care if cursor is not in first column
+			int curCol(1);
+			double ccPos(textframe->textLayout->boundingBox ( textCursorPos ).x());
+			double leftOffset(textframe->textToFrameDistLeft());
+			for(int ci(1); ci <= textframe->columns(); ++ci)
+			{
+				double cLeft(((ci-1) * textframe->columnWidth()) + ((ci -1) * textframe->columnGap()) + leftOffset);
+				double cRight((ci * textframe->columnWidth()) + ((ci -1) * textframe->columnGap()) + leftOffset);
+				if((cLeft <= ccPos) && (ccPos <= cRight))
+				{
+					curCol = ci;
+					break;
+				}
+			}
+			dx = (textframe->columnWidth() * (curCol - 1)) + (textframe->columnGap() * (curCol - 1))  + leftOffset;
+			dy = bbox.y();
+
+			if ( bbox.height() <= 2 )
+				dy1 = bbox.y() + textframe->itemText.charStyle ( textCursorPos ).fontSize() / 30.0;
+			else
+				dy1 = bbox.y() + bbox.height();
+
+			dy  += lineSpacing;
+			dy1 += lineSpacing;
+		}
+		else if (textCursorChar == SpecialChars::COLBREAK)
+		{
+			// A bit tricky :)
+			// We want to position the cursor at the beginning of the next column, if any.
+			// At first we need to know in which column the cursor is.
+			int curCol(1);
+			double ccPos(textframe->textLayout->boundingBox ( textCursorPos ).x());
+			double leftOffset(textframe->textToFrameDistLeft());
+			for(int ci(1); ci <= textframe->columns(); ++ci)
+			{
+				double cLeft(((ci-1) * textframe->columnWidth()) + ((ci -1) * textframe->columnGap()) + leftOffset);
+				double cRight((ci * textframe->columnWidth()) + ((ci -1) * textframe->columnGap()) + leftOffset);
+				if((cLeft <= ccPos) && (ccPos <= cRight))
+				{
+					curCol = ci;
+					break;
+				}
+			}
+			if(textframe->columns() > curCol)
+			{
+				dx = (textframe->columnWidth() * curCol) + (textframe->columnGap() * curCol)  + leftOffset;
+				dy = textframe->textToFrameDistTop();
+				dy1 = textframe->textToFrameDistTop() + textframe->textLayout->boundingBox ( textCursorPos ).height();
+			}
+			else // there is no column after the current column
+			{
+				FRect bbox = textframe->textLayout->boundingBox ( textCursorPos );
+				dx = bbox.x();
+				dy = bbox.y();
+				dx += bbox.width();
+				if ( bbox.height() <= 2 )
+					dy1 = bbox.y() + textframe->itemText.charStyle ( textCursorPos ).fontSize() / 30.0;
+				else
+					dy1 = bbox.y() + textframe->textLayout->boxAscent(textCursorPos);
+			}
+		}
+		else
+		{
+			FRect bbox = textframe->textLayout->boundingBox ( textCursorPos );
+			dx = bbox.x();
+			dy = bbox.y();
+			dx += bbox.width();
+			if ( bbox.height() <= 2 )
+				dy1 = bbox.y() + textframe->itemText.charStyle ( textCursorPos ).fontSize() / 30.0;
+			else
+				dy1 = bbox.y() + textframe->textLayout->boxAscent(textCursorPos);
+
+		}
+		cPen.setColor ( ScColorEngine::getRGBColor ( m_doc->PageColors[textframe->itemText.charStyle ( textCursorPos ).fillColor() ], m_doc ) );
+	}
+	else
+	{
+		FRect bbox = textframe->textLayout->boundingBox ( textCursorPos );
+		dx = bbox.x();
+		dy = bbox.y();
+		if ( bbox.height() <= 2 )
+			dy1 = bbox.y() + textframe->itemText.charStyle ( textCursorPos ).fontSize() / 30.0;
+		else
+			dy1 = bbox.y() + bbox.height();
+
+		cPen.setColor ( ScColorEngine::getRGBColor ( m_doc->PageColors[textframe->itemText.charStyle ( textCursorPos ).fillColor() ], m_doc ) );
+	}
+	//handle Right to Left writing
+	if ( textframe->reversed() )
+	{
+		dx=textframe->width()-dx;
+	}
+
+	p->save();
+	p->translate ( textframe->xPos(), textframe->yPos() );
+	p->rotate ( textframe->rotation() );
+
+
+	p->setPen ( cPen );
+	p->setRenderHint ( QPainter::Antialiasing, true );
+	// avoid displaying the cursor on the frameborder
+	dx = qMax ( ( cPen.widthF() / 2.0 ), dx );
+
+	dy =  qMin ( qMax ( dy,0.0 ) , textframe->height() );
+	dy1 = qMin ( qMax ( dy1,0.0 ), textframe->height() );
+
+	p->drawLine ( QLineF ( dx,dy,dx,dy1 ).translated(offset) );
+
+	p->restore();
 }
 
 void CanvasMode::commonkeyPressEvent_NormalNodeEdit(QKeyEvent *e)

Modified: branches/ScribusOIF/scribus/canvasmode.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode.h (original)
+++ branches/ScribusOIF/scribus/canvasmode.h Sat Oct  8 18:21:50 2011
@@ -22,6 +22,7 @@
 
 #include <QMap>
 #include <QPen>
+#include <QPointF>
 #include <QBrush>
 
 class QDragEnterEvent;
@@ -43,6 +44,7 @@
 class  ScribusMainWindow;
 class  PageItem;
 class  PageItemPreview;
+class  PageItem_TextFrame;
 
 /** These aren't real appmodes but open a new window or override behaviour for a short time */
 enum SubMode
@@ -67,7 +69,7 @@
 {
 	Q_OBJECT
 protected:
-	CanvasMode (ScribusView* view);
+	explicit CanvasMode (ScribusView* view);
 	
 public:
 	static CanvasMode* createForAppMode(ScribusView* view, int appMode);
@@ -144,7 +146,8 @@
 	void setResizeCursor(int how, double rot = 0.0);
 	bool commonMouseMove(QMouseEvent *m);
 	void commonDrawControls(QPainter* p, bool drawHandles);
-
+	/// Draws the text cursor for @a textframe, offset by @a offset.
+	void commonDrawTextCursor(QPainter* p, PageItem_TextFrame* textframe, const QPointF& offset);
 	void commonkeyPressEvent_NormalNodeEdit(QKeyEvent *e);
 	void commonkeyReleaseEvent(QKeyEvent *e);
 	

Modified: branches/ScribusOIF/scribus/canvasmode_copyproperties.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_copyproperties.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_copyproperties.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_copyproperties.h Sat Oct  8 18:21:50 2011
@@ -29,7 +29,8 @@
 class CanvasMode_CopyProperties :  public CanvasMode
 {
 public:
-	CanvasMode_CopyProperties(ScribusView* view);
+	explicit CanvasMode_CopyProperties(ScribusView* view);
+	virtual ~CanvasMode_CopyProperties() {}
 
 	virtual void enterEvent(QEvent *);
 	virtual void leaveEvent(QEvent *);

Modified: branches/ScribusOIF/scribus/canvasmode_create.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_create.cpp
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_create.cpp (original)
+++ branches/ScribusOIF/scribus/canvasmode_create.cpp Sat Oct  8 18:21:50 2011
@@ -32,11 +32,13 @@
 #include "canvas.h"
 #include "fpoint.h"
 #include "fpointarray.h"
+#include "text/frect.h"
 #include "ui/hruler.h"
 #include "ui/vruler.h"
 #include "hyphenator.h"
 #include "ui/insertTable.h"
 #include "ui/oneclick.h"
+#include "pageitem_table.h"
 #include "pageitem_textframe.h"
 #include "ui/pageselector.h"
 #include "prefscontext.h"
@@ -369,9 +371,12 @@
 
 	switch (m_doc->appMode)
 	{
-	case modeDrawTable:
-		m_view->Deselect(false);
-		break;
+		case modeDrawTable:
+			m_view->Deselect(false);
+			break;
+		case modeDrawTable2:
+			m_view->Deselect(false);
+			break;
 	}
 
 	inItemCreation = true;
@@ -392,16 +397,7 @@
 
 	m_createTransaction = new UndoTransaction(Um::instance()->beginTransaction("creating"));
 	currItem = doCreateNewObject();
-	if (m_createTransaction && currItem && currItem->isGroup())
-	{
-		// We created a table, just commit transaction
-		m_view->resetMousePressed();
-		m_createTransaction->commit();
-		m_doc->changed();
-		delete m_createTransaction;
-		m_createTransaction = NULL;	
-	}
-	else if (m_createTransaction && currItem)
+	if (m_createTransaction && currItem)
 	{
 		m_view->resetMousePressed();
 		currItem->checkChanges(true);
@@ -563,6 +559,10 @@
 		itemType  = (int) PageItem::TextFrame;
 		frameType = (int) PageItem::Unspecified;
 		break;
+	case modeDrawTable2:
+		itemType  = (int) PageItem::Table;
+		frameType = (int) PageItem::Unspecified;
+		break;
 #ifdef HAVE_OSG
 	case modeInsertPDF3DAnnotation:
 		itemType  = (int) PageItem::OSGFrame;
@@ -580,7 +580,7 @@
 	double wSize = canvasCurrCoord.x() - createObjectPos.x();
 	double hSize = canvasCurrCoord.y() - createObjectPos.y();
 	bool   skipOneClick = (modifiers == Qt::ShiftModifier);
-	if ((createObjectMode == modeDrawLine) || (createObjectMode == modeDrawTable) ||
+	if ((createObjectMode == modeDrawLine) || (createObjectMode == modeDrawTable) || (createObjectMode == modeDrawTable2) ||
 		(createObjectMode == modeInsertPDFButton) || (createObjectMode == modeInsertPDFTextfield) ||
 		(createObjectMode == modeInsertPDFTextfield) || (createObjectMode == modeInsertPDFCheckbox) ||
 		(createObjectMode == modeInsertPDFCombobox) || (createObjectMode == modeInsertPDFListbox) ||
@@ -846,6 +846,51 @@
 			m_doc->m_Selection->delaySignalsOff();
 		}
 		break;
+	case modeDrawTable2:
+		// TODO: Figure out what these conditions actually do.
+		if ((m_doc->m_Selection->count() == 0) && (m_view->HaveSelRect) && (!m_view->MidButt))
+		{
+			m_view->HaveSelRect = false;
+			// Calculate table rectangle.
+			FRect tableRect = adjustedRect(canvasPressCoord, canvasCurrCoord);
+			if (tableRect.width() < 6 || tableRect.height() < 6)
+			{
+				// Ignore tiny tables.
+				m_view->requestMode(submodePaintingDone);
+				break;
+			}
+			// Show table insert dialog.
+			qApp->changeOverrideCursor(QCursor(Qt::ArrowCursor));
+			InsertTable *dia = new InsertTable(m_view, static_cast<int>(tableRect.height()/6), static_cast<int>(tableRect.width()/6));
+			if (!dia->exec())
+			{
+				m_view->requestMode(submodePaintingDone);
+				delete dia;
+				dia = 0;
+				break;
+			}
+			int numRows = dia->Rows->value();
+			int numColumns = dia->Cols->value();
+			delete dia;
+			dia = 0;
+			// Add the table item.
+			// TODO: This should be done in an undo transaction.
+			z = m_doc->itemAdd(PageItem::Table, PageItem::Unspecified,
+						   tableRect.x(),
+						   tableRect.y(),
+						   tableRect.width(),
+						   tableRect.height(),
+						   0,                   // Unused.
+						   CommonStrings::None, // Unused.
+						   CommonStrings::None, // Unused.
+						   true);
+			PageItem_Table *table = m_doc->Items->at(z)->asTable();
+			table->insertRows(0, numRows - 1);
+			table->insertColumns(0, numColumns - 1);
+			table->adjustTableToFrame();
+			table->adjustFrameToTable();
+		}
+		break;
 	case modeInsertPDF3DAnnotation:
 		if (modifiers == Qt::ShiftModifier)
 		{
@@ -968,6 +1013,27 @@
 	}
 	delete dia;
 	return doCreate;
+}
+
+FRect CreateMode::adjustedRect(FPoint &firstPoint, FPoint &secondPoint)
+{
+	// Lock to grid.
+	FPoint first = m_doc->ApplyGridF(firstPoint);
+	FPoint second = m_doc->ApplyGridF(secondPoint);
+
+	// Lock to guides.
+	double firstX = first.x();
+	double firstY = first.y();
+	m_doc->ApplyGuides(&firstX, &firstY);
+
+	double secondX = second.x();
+	double secondY = second.y();
+	m_doc->ApplyGuides(&secondX, &secondY);
+
+	// Return normalized rectangle.
+	FRect rect(firstX, firstY, secondX - firstX, secondY - firstY);
+
+	return rect.normalize();
 }
 
 // void CreateMode::setResizeCursor(int how)

Modified: branches/ScribusOIF/scribus/canvasmode_create.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_create.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_create.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_create.h Sat Oct  8 18:21:50 2011
@@ -20,6 +20,7 @@
 
 #include "canvasmode.h"
 #include "fpointarray.h"
+#include "text/frect.h"
 
 class PageItem;
 class ScribusMainWindow;
@@ -32,7 +33,8 @@
 class CreateMode : public CanvasMode
 {
 public:
-	CreateMode(ScribusView* view);
+	explicit CreateMode(ScribusView* view);
+	virtual ~CreateMode() {}
 
 	virtual void enterEvent(QEvent *);
 	virtual void leaveEvent(QEvent *);
@@ -60,6 +62,16 @@
 	// for the pure sake of not including pageitem.h
 	void getFrameItemTypes(int& itemType, int& frameType);
 
+	/**
+	 * Convenience function which given two points calculates and returns the
+	 * normalized rectangle between the two points, adjusted to grid and guides.
+	 *
+	 * @param firstPoint the first point
+	 * @param secondPoint the second point
+	 * @return a normalized rectangle adjusted to grid and guides
+	 */
+	FRect adjustedRect(FPoint &firstPoint, FPoint &secondPoint);
+
 	bool   inItemCreation;
 	bool   m_MouseButtonPressed;
 	FPoint mouseGlobalCoord;

Modified: branches/ScribusOIF/scribus/canvasmode_drawbezier.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_drawbezier.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_drawbezier.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_drawbezier.h Sat Oct  8 18:21:50 2011
@@ -32,7 +32,8 @@
 class BezierMode : public CanvasMode
 {
 public:
-	BezierMode(ScribusView* view);
+	explicit BezierMode(ScribusView* view);
+	virtual ~BezierMode() {}
 
 	virtual void enterEvent(QEvent *);
 	virtual void leaveEvent(QEvent *);

Modified: branches/ScribusOIF/scribus/canvasmode_drawcalligraphic.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_drawcalligraphic.cpp
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_drawcalligraphic.cpp (original)
+++ branches/ScribusOIF/scribus/canvasmode_drawcalligraphic.cpp Sat Oct  8 18:21:50 2011
@@ -173,7 +173,7 @@
 			newY = qRound(mousePointDoc.y()); //m_view->translateToDoc(m->x(), m->y()).y());
 			SeRx = newX;
 			SeRy = newY;
-			QPoint startP = m_canvas->canvasToGlobal(m_doc->appMode == modeDrawTable? QPointF(Dxp, Dyp) : QPointF(Mxp, Myp));
+			QPoint startP = m_canvas->canvasToGlobal(m_doc->appMode == modeDrawTable || m_doc->appMode == modeDrawTable2 ? QPointF(Dxp, Dyp) : QPointF(Mxp, Myp));
 			m_view->redrawMarker->setGeometry(QRect(startP, m->globalPos()).normalized());
 			if (!m_view->redrawMarker->isVisible())
 				m_view->redrawMarker->show();

Modified: branches/ScribusOIF/scribus/canvasmode_drawcalligraphic.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_drawcalligraphic.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_drawcalligraphic.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_drawcalligraphic.h Sat Oct  8 18:21:50 2011
@@ -32,7 +32,8 @@
 class CalligraphicMode : public CanvasMode
 {
 public:
-	CalligraphicMode(ScribusView* view);
+	explicit CalligraphicMode(ScribusView* view);
+	virtual ~CalligraphicMode() {}
 
 	virtual void enterEvent(QEvent *);
 	virtual void leaveEvent(QEvent *);

Modified: branches/ScribusOIF/scribus/canvasmode_drawfreehand.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_drawfreehand.cpp
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_drawfreehand.cpp (original)
+++ branches/ScribusOIF/scribus/canvasmode_drawfreehand.cpp Sat Oct  8 18:21:50 2011
@@ -161,7 +161,7 @@
 			newY = qRound(mousePointDoc.y()); //m_view->translateToDoc(m->x(), m->y()).y());
 			SeRx = newX;
 			SeRy = newY;
-			QPoint startP = m_canvas->canvasToGlobal(m_doc->appMode == modeDrawTable? QPointF(Dxp, Dyp) : QPointF(Mxp, Myp));
+			QPoint startP = m_canvas->canvasToGlobal(m_doc->appMode == modeDrawTable || m_doc->appMode == modeDrawTable2 ? QPointF(Dxp, Dyp) : QPointF(Mxp, Myp));
 			m_view->redrawMarker->setGeometry(QRect(startP, m->globalPos()).normalized());
 			if (!m_view->redrawMarker->isVisible())
 				m_view->redrawMarker->show();

Modified: branches/ScribusOIF/scribus/canvasmode_drawfreehand.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_drawfreehand.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_drawfreehand.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_drawfreehand.h Sat Oct  8 18:21:50 2011
@@ -32,7 +32,8 @@
 class FreehandMode : public CanvasMode
 {
 public:
-	FreehandMode(ScribusView* view);
+	explicit FreehandMode(ScribusView* view);
+	virtual ~FreehandMode() {}
 
 	virtual void enterEvent(QEvent *);
 	virtual void leaveEvent(QEvent *);

Modified: branches/ScribusOIF/scribus/canvasmode_edit.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_edit.cpp
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_edit.cpp (original)
+++ branches/ScribusOIF/scribus/canvasmode_edit.cpp Sat Oct  8 18:21:50 2011
@@ -25,6 +25,7 @@
 #include <QMouseEvent>
 #include <QPainterPath>
 #include <QPoint>
+#include <QPointF>
 #include <QRect>
 #include <QTimer>
 #include <QWidgetAction>
@@ -232,158 +233,7 @@
 // 		qDebug()<<dbgString;
 // 		qDebug()<<"==============================================================";
 		// end debug
-		double dx, dy, dy1;
-		QPen cPen ( Qt::black, 1.5 , Qt::SolidLine, Qt::FlatCap, Qt::MiterJoin );
-		cPen.setCosmetic(true); // #10049 : make cursor line width constant on screen
-
-		// normalize Current Position
-		textframe->itemText.normalizeCursorPosition();
-		int textCursorPos ( textframe->itemText.cursorPosition() );
-
-		bool cursorDirection(true); // true => LTR; false => RTL
-		FRect bbox;
-		if ( textframe->lastInFrame() >= signed ( textframe->itemText.length() )
-		        || textframe->itemText.length() == 0 )
-		{
-			// cursor at the beginning of an empty frame
-			dx = textframe->textToFrameDistLeft();
-			dy = textframe->textToFrameDistTop();
-			dy1 = textframe->textToFrameDistTop() + (textframe->itemText.defaultStyle().charStyle().fontSize() / 10.0);
-
-			cPen.setColor ( ScColorEngine::getRGBColor ( m_doc->PageColors[textframe->itemText.defaultStyle().charStyle().fillColor() ], m_doc ) );
-		}
-		else if ( textCursorPos > textframe->lastInFrame() )
-		{
-			// Happens often when typing directly into frame.
-			// And the cursor curses nothing, vertigo.
-			textCursorPos = qMax(0, textframe->lastInFrame());
-			QChar textCursorChar = textframe->itemText.text(textCursorPos);
-			cursorDirection = !textframe->itemText.charAttributes(textCursorPos).testFlag(TextFlag_RightToLeft);
-			if (textCursorChar == SpecialChars::PARSEP || textCursorChar == SpecialChars::LINEBREAK)
-			{
-				// The cursor must be moved to the beginning of the next line
-				bbox = textframe->textLayout->boundingBox ( textCursorPos );
-				double lineSpacing(textframe->itemText.paragraphStyle(textCursorPos).lineSpacing());
-				
-				// take care if cursor is not in first column
-				int curCol(1);
-				double ccPos(textframe->textLayout->boundingBox ( textCursorPos ).x());
-				double leftOffset(textframe->textToFrameDistLeft());
-				for(int ci(1); ci <= textframe->columns(); ++ci)
-				{
-					double cLeft(((ci-1) * textframe->columnWidth()) + ((ci -1) * textframe->columnGap()) + leftOffset);
-					double cRight((ci * textframe->columnWidth()) + ((ci -1) * textframe->columnGap()) + leftOffset);
-					if((cLeft <= ccPos) && (ccPos <= cRight))
-					{
-						curCol = ci;
-						break;
-					}
-				}
-				dx = (textframe->columnWidth() * (curCol - 1)) + (textframe->columnGap() * (curCol - 1))  + leftOffset;
-				dy = bbox.y();
-				
-				if ( bbox.height() <= 2 )
-					dy1 = bbox.y() + textframe->itemText.charStyle ( textCursorPos ).fontSize() / 30.0;
-				else
-					dy1 = bbox.y() + textframe->textLayout->boxAscent(textCursorPos);
-				
-				dy  += lineSpacing;
-				dy1 += lineSpacing;
-			}
-			else if (textCursorChar == SpecialChars::COLBREAK)
-			{
-				// A bit tricky :)
-				// We want to position the cursor at the beginning of the next column, if any.
-				// At first we need to know in which column the cursor is.
-				int curCol(1);
-				double ccPos(textframe->textLayout->boundingBox ( textCursorPos ).x());
-				cursorDirection = !textframe->itemText.charAttributes(textCursorPos).testFlag(TextFlag_RightToLeft);
-				double leftOffset(textframe->textToFrameDistLeft());
-				for(int ci(1); ci <= textframe->columns(); ++ci)
-				{
-					double cLeft(((ci-1) * textframe->columnWidth()) + ((ci -1) * textframe->columnGap()) + leftOffset);
-					double cRight((ci * textframe->columnWidth()) + ((ci -1) * textframe->columnGap()) + leftOffset);
-					if((cLeft <= ccPos) && (ccPos <= cRight))
-					{
-						curCol = ci;
-						break;
-					}
-				}
-				if(textframe->columns() > curCol)
-				{
-					dx = (textframe->columnWidth() * curCol) + (textframe->columnGap() * curCol)  + leftOffset;
-					dy = textframe->textToFrameDistTop();
-					dy1 = textframe->textToFrameDistTop() + textframe->textLayout->boxAscent(textCursorPos);
-				}
-				else // there is no column after the current column
-				{
-					bbox = textframe->textLayout->boundingBox ( textCursorPos );
-					dx = bbox.x();
-					dy = bbox.y();
-					dx += bbox.width();
-					if ( bbox.height() <= 2 )
-						dy1 = bbox.y() + textframe->itemText.charStyle ( textCursorPos ).fontSize() / 30.0;
-					else
-						dy1 = bbox.y() + textframe->textLayout->boxAscent(textCursorPos);
-				}
-			}
-			else
-			{
-				bbox = textframe->textLayout->boundingBox ( textCursorPos );
-				cursorDirection = !textframe->itemText.charAttributes(textCursorPos).testFlag(TextFlag_RightToLeft);
-				dx = cursorDirection ? bbox.right() : bbox.x();
-				dy = bbox.y();
-//				dx += bbox.width();
-				if ( bbox.height() <= 2 )
-					dy1 = bbox.y() + textframe->itemText.charStyle ( textCursorPos ).fontSize() / 30.0;
-				else
-					dy1 = bbox.y() + textframe->textLayout->boxAscent(textCursorPos);
-	
-			}
-			cPen.setColor ( ScColorEngine::getRGBColor ( m_doc->PageColors[textframe->itemText.charStyle ( textCursorPos ).fillColor() ], m_doc ) );
-		}
-		else
-		{
-			// Cursor is in the middle of a text
-			cursorDirection = !textframe->itemText.charAttributes(textCursorPos).testFlag(TextFlag_RightToLeft);
-			bbox = textframe->textLayout->boundingBox ( textCursorPos );
-			dx = cursorDirection ? bbox.x() :bbox.right();
-			dy = bbox.y();
-			if ( bbox.height() <= 2 )
-				dy1 = bbox.y() + textframe->itemText.charStyle ( textCursorPos ).fontSize() / 30.0;
-			else
-				dy1 = bbox.y() + textframe->textLayout->boxAscent(textCursorPos);
-
-			cPen.setColor ( ScColorEngine::getRGBColor ( m_doc->PageColors[textframe->itemText.charStyle ( textCursorPos ).fillColor() ], m_doc ) );
-		}
-		//handle Right to Left writing
-		if ( textframe->reversed() )
-		{
-			dx=textframe->width()-dx;
-		}
-
-		p->save();
-		p->translate ( textframe->xPos(), textframe->yPos() );
-		p->rotate ( textframe->rotation() );
-
-
-		p->setPen ( cPen );
-		p->setRenderHint ( QPainter::Antialiasing, true );
-
-		dx = qMax ( ( cPen.widthF() / 2.0 ), dx );
-		dy =  qMin ( qMax ( dy,0.0 ) , textframe->height() );
-		dy1 = qMin ( qMax ( dy1,0.0 ), textframe->height() );
-		p->drawLine ( QLineF ( dx,dy,dx,dy1 ) );
-		if(cursorDirection)
-		{
-			p->drawLine ( QLineF ( dx,dy,dx + 1.0,dy ) );
-		}
-		else
-		{
-			p->drawLine ( QLineF ( dx,dy,dx - 1.0,dy ) );
-		}
-
-		p->restore();
+		commonDrawTextCursor(p, textframe, QPointF());
 	}
 }
 

Modified: branches/ScribusOIF/scribus/canvasmode_edit.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_edit.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_edit.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_edit.h Sat Oct  8 18:21:50 2011
@@ -37,7 +37,8 @@
 	Q_OBJECT
 	
 public:
-	CanvasMode_Edit(ScribusView* view);
+	explicit CanvasMode_Edit(ScribusView* view);
+	virtual ~CanvasMode_Edit() {}
 
 	virtual void enterEvent(QEvent *);
 	virtual void leaveEvent(QEvent *);

Modified: branches/ScribusOIF/scribus/canvasmode_editarc.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_editarc.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_editarc.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_editarc.h Sat Oct  8 18:21:50 2011
@@ -41,7 +41,8 @@
 {	
 	Q_OBJECT
 public:
-	CanvasMode_EditArc(ScribusView* view);
+	explicit CanvasMode_EditArc(ScribusView* view);
+	virtual ~CanvasMode_EditArc() {}
 
 	virtual void enterEvent(QEvent *);
 	virtual void leaveEvent(QEvent *);

Modified: branches/ScribusOIF/scribus/canvasmode_editgradient.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_editgradient.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_editgradient.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_editgradient.h Sat Oct  8 18:21:50 2011
@@ -35,7 +35,8 @@
 class CanvasMode_EditGradient :  public CanvasMode
 {	
 public:
-	CanvasMode_EditGradient(ScribusView* view);
+	explicit CanvasMode_EditGradient(ScribusView* view);
+	virtual ~CanvasMode_EditGradient() {}
 
 	virtual void enterEvent(QEvent *);
 	virtual void leaveEvent(QEvent *);

Modified: branches/ScribusOIF/scribus/canvasmode_editmeshgradient.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_editmeshgradient.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_editmeshgradient.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_editmeshgradient.h Sat Oct  8 18:21:50 2011
@@ -40,7 +40,8 @@
 class CanvasMode_EditMeshGradient :  public CanvasMode
 {	
 public:
-	CanvasMode_EditMeshGradient(ScribusView* view);
+	explicit CanvasMode_EditMeshGradient(ScribusView* view);
+	virtual ~CanvasMode_EditMeshGradient() {}
 
 	virtual void enterEvent(QEvent *);
 	virtual void leaveEvent(QEvent *);

Modified: branches/ScribusOIF/scribus/canvasmode_editpolygon.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_editpolygon.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_editpolygon.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_editpolygon.h Sat Oct  8 18:21:50 2011
@@ -1,103 +1,104 @@
 /*
- For general Scribus (>=1.3.2) copyright and licensing information please refer
- to the COPYING file provided with the program. Following this notice may exist
- a copyright and/or license notice that predates the release of Scribus 1.3.2
- for which a new license (GPL+exception) is in place.
- */
-/***************************************************************************
-*                                                                         *
-*   This program is free software; you can redistribute it and/or modify  *
-*   it under the terms of the GNU General Public License as published by  *
-*   the Free Software Foundation; either version 2 of the License, or     *
-*   (at your option) any later version.                                   *
-*                                                                         *
-***************************************************************************/
-/***************************************************************************
-                 canvasmode_editpolygon.h  -  description
-                             -------------------
-    begin                : Wed Jan 12 2011
-    copyright            : (C) 2011 by Franz Schmid
-    email                : Franz.Schmid at altmuehlnet.de
- ***************************************************************************/
-
-#ifndef CANVAS_MODE_EDITPOLYGON_H
-#define CANVAS_MODE_EDITPOLYGON_H
-
-#include <QObject>
-#include <QTime>
-
-#include "canvasmode.h"
-#include "fpointarray.h"
-#include "ui/polyprops.h"
-
-class PageItem;
-class ScribusMainWindow;
-class ScribusView;
-
-
-// This class encapsulate the old code for mouse interaction from scribusview.cpp
-
-class CanvasMode_EditPolygon :  public CanvasMode
-{
-	Q_OBJECT
-public:
-	CanvasMode_EditPolygon(ScribusView* view);
-
-	virtual void enterEvent(QEvent *);
-	virtual void leaveEvent(QEvent *);
-	
-	virtual void activate(bool);
-	virtual void deactivate(bool);
-	virtual void mouseDoubleClickEvent(QMouseEvent *m);
-	virtual void mouseReleaseEvent(QMouseEvent *m);
-	virtual void mouseMoveEvent(QMouseEvent *m);
-	virtual void mousePressEvent(QMouseEvent *m);
-	virtual void drawControls(QPainter* p);
-	void drawControlsPolygon(QPainter* pp, PageItem* currItem);
-
-private:
-
-	typedef enum 
-	{
-		noPointDefined,
-		useControlOuter,
-		useControlInner,
-		useControlInnerCurve,
-		useControlOuterCurve
-	} ePolygonPoint;
-
-	inline bool GetItem(PageItem** pi);
-	double GetZeroFactor();
-	double GetMaxFactor();
-	double getUserValFromFactor(double factor);
-
-	double Mxp, Myp;
-	ScribusMainWindow* m_ScMW;
-	QPointF startPoint;
-	QPointF endPoint;
-	QPointF centerPoint;
-	QPointF innerCPoint;
-	QPointF outerCPoint;
-	int polyCorners;
-	bool polyUseFactor;
-	double polyFactor;
-	double polyRotation;
-	double polyCurvature;
-	double polyInnerRot;
-	double polyOuterCurvature;
-	ePolygonPoint m_polygonPoint;
-	PolyVectorDialog *VectorDialog;
-
-	int    m_blockUpdateFromItem;
-	void   blockUpdateFromItem(bool block) { if (block) ++m_blockUpdateFromItem; else --m_blockUpdateFromItem; }
-	bool   updateFromItemBlocked() { return (m_blockUpdateFromItem > 0); }
-
-public slots:
-	void applyValues(int polyC, double polyF, bool polyUseCF, double polyR, double polyCur, double polyIRot, double polyOCur);
-	void updateFromItem();
-	void endEditing(bool active);
-	void endEditing();
-};
-
-
-#endif
+ For general Scribus (>=1.3.2) copyright and licensing information please refer
+ to the COPYING file provided with the program. Following this notice may exist
+ a copyright and/or license notice that predates the release of Scribus 1.3.2
+ for which a new license (GPL+exception) is in place.
+ */
+/***************************************************************************
+*                                                                         *
+*   This program is free software; you can redistribute it and/or modify  *
+*   it under the terms of the GNU General Public License as published by  *
+*   the Free Software Foundation; either version 2 of the License, or     *
+*   (at your option) any later version.                                   *
+*                                                                         *
+***************************************************************************/
+/***************************************************************************
+                 canvasmode_editpolygon.h  -  description
+                             -------------------
+    begin                : Wed Jan 12 2011
+    copyright            : (C) 2011 by Franz Schmid
+    email                : Franz.Schmid at altmuehlnet.de
+ ***************************************************************************/
+
+#ifndef CANVAS_MODE_EDITPOLYGON_H
+#define CANVAS_MODE_EDITPOLYGON_H
+
+#include <QObject>
+#include <QTime>
+
+#include "canvasmode.h"
+#include "fpointarray.h"
+#include "ui/polyprops.h"
+
+class PageItem;
+class ScribusMainWindow;
+class ScribusView;
+
+
+// This class encapsulate the old code for mouse interaction from scribusview.cpp
+
+class CanvasMode_EditPolygon :  public CanvasMode
+{
+	Q_OBJECT
+public:
+	explicit CanvasMode_EditPolygon(ScribusView* view);
+	virtual ~CanvasMode_EditPolygon() {}
+
+	virtual void enterEvent(QEvent *);
+	virtual void leaveEvent(QEvent *);
+	
+	virtual void activate(bool);
+	virtual void deactivate(bool);
+	virtual void mouseDoubleClickEvent(QMouseEvent *m);
+	virtual void mouseReleaseEvent(QMouseEvent *m);
+	virtual void mouseMoveEvent(QMouseEvent *m);
+	virtual void mousePressEvent(QMouseEvent *m);
+	virtual void drawControls(QPainter* p);
+	void drawControlsPolygon(QPainter* pp, PageItem* currItem);
+
+private:
+
+	typedef enum 
+	{
+		noPointDefined,
+		useControlOuter,
+		useControlInner,
+		useControlInnerCurve,
+		useControlOuterCurve
+	} ePolygonPoint;
+
+	inline bool GetItem(PageItem** pi);
+	double GetZeroFactor();
+	double GetMaxFactor();
+	double getUserValFromFactor(double factor);
+
+	double Mxp, Myp;
+	ScribusMainWindow* m_ScMW;
+	QPointF startPoint;
+	QPointF endPoint;
+	QPointF centerPoint;
+	QPointF innerCPoint;
+	QPointF outerCPoint;
+	int polyCorners;
+	bool polyUseFactor;
+	double polyFactor;
+	double polyRotation;
+	double polyCurvature;
+	double polyInnerRot;
+	double polyOuterCurvature;
+	ePolygonPoint m_polygonPoint;
+	PolyVectorDialog *VectorDialog;
+
+	int    m_blockUpdateFromItem;
+	void   blockUpdateFromItem(bool block) { if (block) ++m_blockUpdateFromItem; else --m_blockUpdateFromItem; }
+	bool   updateFromItemBlocked() { return (m_blockUpdateFromItem > 0); }
+
+public slots:
+	void applyValues(int polyC, double polyF, bool polyUseCF, double polyR, double polyCur, double polyIRot, double polyOCur);
+	void updateFromItem();
+	void endEditing(bool active);
+	void endEditing();
+};
+
+
+#endif

Modified: branches/ScribusOIF/scribus/canvasmode_editspiral.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_editspiral.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_editspiral.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_editspiral.h Sat Oct  8 18:21:50 2011
@@ -41,7 +41,8 @@
 {	
 	Q_OBJECT
 public:
-	CanvasMode_EditSpiral(ScribusView* view);
+	explicit CanvasMode_EditSpiral(ScribusView* view);
+	virtual ~CanvasMode_EditSpiral() {}
 
 	virtual void enterEvent(QEvent *);
 	virtual void leaveEvent(QEvent *);

Modified: branches/ScribusOIF/scribus/canvasmode_eyedropper.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_eyedropper.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_eyedropper.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_eyedropper.h Sat Oct  8 18:21:50 2011
@@ -27,7 +27,8 @@
 class CanvasMode_EyeDropper :  public CanvasMode
 {
 public:
-	CanvasMode_EyeDropper(ScribusView* view);
+	explicit CanvasMode_EyeDropper(ScribusView* view);
+	virtual ~CanvasMode_EyeDropper() {}
 
 	virtual void enterEvent(QEvent *);
 	virtual void leaveEvent(QEvent *);

Modified: branches/ScribusOIF/scribus/canvasmode_framelinks.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_framelinks.cpp
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_framelinks.cpp (original)
+++ branches/ScribusOIF/scribus/canvasmode_framelinks.cpp Sat Oct  8 18:21:50 2011
@@ -132,7 +132,7 @@
 		/*
 		m_view->redrawMarker->setGeometry(QRect(Mxp, Myp, m->globalPos().x() - Mxp, m->globalPos().y() - Myp).normalized());
 		*/
-		QPoint startP = m_canvas->canvasToGlobal(m_doc->appMode == modeDrawTable? QPointF(Dxp, Dyp) : QPointF(Mxp, Myp));
+		QPoint startP = m_canvas->canvasToGlobal(m_doc->appMode == modeDrawTable || m_doc->appMode == modeDrawTable2 ? QPointF(Dxp, Dyp) : QPointF(Mxp, Myp));
 		m_view->redrawMarker->setGeometry(QRect(startP, m->globalPos()).normalized());
 		if (!m_view->redrawMarker->isVisible())
 			m_view->redrawMarker->show();

Modified: branches/ScribusOIF/scribus/canvasmode_framelinks.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_framelinks.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_framelinks.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_framelinks.h Sat Oct  8 18:21:50 2011
@@ -38,7 +38,8 @@
 class CanvasMode_FrameLinks :  public CanvasMode
 {
 public:
-	CanvasMode_FrameLinks(ScribusView* view);
+	explicit CanvasMode_FrameLinks(ScribusView* view);
+	virtual ~CanvasMode_FrameLinks() {}
 
 	virtual void enterEvent(QEvent *);
 	virtual void leaveEvent(QEvent *);

Modified: branches/ScribusOIF/scribus/canvasmode_magnifier.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_magnifier.cpp
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_magnifier.cpp (original)
+++ branches/ScribusOIF/scribus/canvasmode_magnifier.cpp Sat Oct  8 18:21:50 2011
@@ -131,7 +131,7 @@
 		/*
 		m_view->redrawMarker->setGeometry(QRect(Mxp, Myp, m->globalPos().x() - Mxp, m->globalPos().y() - Myp).normalized());
 		*/
-		QPoint startP = m_canvas->canvasToGlobal(m_doc->appMode == modeDrawTable? QPointF(Dxp, Dyp) : QPointF(Mxp, Myp));
+		QPoint startP = m_canvas->canvasToGlobal(m_doc->appMode == modeDrawTable || m_doc->appMode == modeDrawTable2 ? QPointF(Dxp, Dyp) : QPointF(Mxp, Myp));
 		m_view->redrawMarker->setGeometry(QRect(startP, m->globalPos()).normalized());
 		if (!m_view->redrawMarker->isVisible())
 			m_view->redrawMarker->show();

Modified: branches/ScribusOIF/scribus/canvasmode_magnifier.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_magnifier.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_magnifier.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_magnifier.h Sat Oct  8 18:21:50 2011
@@ -37,7 +37,8 @@
 class CanvasMode_Magnifier :  public CanvasMode
 {
 public:
-	CanvasMode_Magnifier(ScribusView* view);
+	explicit CanvasMode_Magnifier(ScribusView* view);
+	virtual ~CanvasMode_Magnifier() {}
 
 	virtual void enterEvent(QEvent *);
 	virtual void leaveEvent(QEvent *);

Modified: branches/ScribusOIF/scribus/canvasmode_measurements.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_measurements.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_measurements.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_measurements.h Sat Oct  8 18:21:50 2011
@@ -35,7 +35,8 @@
 	Q_OBJECT
 	
 public:
-	MeasurementsMode(ScribusView* view);
+	explicit MeasurementsMode(ScribusView* view);
+	virtual ~MeasurementsMode() {}
 
 	virtual void enterEvent(QEvent *);
 	virtual void leaveEvent(QEvent *);

Modified: branches/ScribusOIF/scribus/canvasmode_nodeedit.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_nodeedit.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_nodeedit.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_nodeedit.h Sat Oct  8 18:21:50 2011
@@ -32,7 +32,7 @@
 class SCRIBUS_API CanvasMode_NodeEdit : public CanvasMode
 {
 public:
-	CanvasMode_NodeEdit (ScribusView* view);
+	explicit CanvasMode_NodeEdit (ScribusView* view);
 	
 	virtual void activate(bool fromgesture);
 	virtual void deactivate(bool forGesture);

Modified: branches/ScribusOIF/scribus/canvasmode_normal.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_normal.cpp
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_normal.cpp (original)
+++ branches/ScribusOIF/scribus/canvasmode_normal.cpp Sat Oct  8 18:21:50 2011
@@ -27,6 +27,7 @@
 #include <QPoint>
 #include <QRect>
 #include <QTimer>
+#include <QToolTip>
 #include <QWidgetAction>
 #include <QDebug>
 
@@ -255,6 +256,11 @@
 		{
 			m_view->requestMode(modeEditSpiral);
 		}
+		else if (currItem->asTable())
+		{
+			m_view->requestMode(modeEditTable);
+			m_view->slotSetCurs(m->globalPos().x(), m->globalPos().y());
+		}
 	}
 }
 
@@ -332,6 +338,32 @@
 			qApp->changeOverrideCursor(QCursor(Qt::ArrowCursor));
 		}
 	}
+	//<<#10116 Show overflow counter HUD
+	if (!movingOrResizing && mouseIsOnPage)
+	{
+		PageItem* hoveredItem=NULL;
+		hoveredItem = m_canvas->itemUnderCursor(m->globalPos(), hoveredItem, m->modifiers());
+		if (hoveredItem)
+		{
+			if (hoveredItem->asTextFrame() && hoveredItem->frameOverflows())
+			{
+				if (m_canvas->cursorOverTextFrameControl(m->globalPos(), hoveredItem))
+				{
+					QToolTip::showText(m->globalPos() + QPoint(5, 5), tr("Overflow Characters: %1").arg(hoveredItem->frameOverflowCount()), m_canvas);
+				}
+			}
+			else
+				if (QToolTip::isVisible())
+					QToolTip::hideText();
+		}
+		else
+		{
+			if (QToolTip::isVisible())
+				QToolTip::hideText();
+		}
+	}
+	//>>#10116
+
 	if ((GetItem(&currItem)) && (!shiftSelItems))
 	{
 		newX = qRound(mousePointDoc.x()); //m_view->translateToDoc(m->x(), m->y()).x());
@@ -812,6 +844,21 @@
 		createContextMenu(currItem, mousePointDoc.x(), mousePointDoc.y());
 		return;
 	}
+	//<<#10116: Click on overflow icon to get into link frame mode
+	PageItem* clickedItem=NULL;
+	clickedItem = m_canvas->itemUnderCursor(m->globalPos(), clickedItem, m->modifiers());
+	if (clickedItem && clickedItem->asTextFrame())
+	{
+		if (clickedItem->frameOverflows())
+		{
+			if (m_canvas->cursorOverTextFrameControl(m->globalPos(), clickedItem))
+			{
+				m_view->requestMode(modeLinkFrames);
+				return;
+			}
+		}
+	}
+	//>>#10116
 	if (m_view->moveTimerElapsed() && (GetItem(&currItem)))
 	{
 //		m_view->stopDragTimer();

Modified: branches/ScribusOIF/scribus/canvasmode_normal.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_normal.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_normal.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_normal.h Sat Oct  8 18:21:50 2011
@@ -39,7 +39,8 @@
 	Q_OBJECT
 	
 public:
-	CanvasMode_Normal(ScribusView* view);
+	explicit CanvasMode_Normal(ScribusView* view);
+	virtual ~CanvasMode_Normal() {}
 
 	virtual void enterEvent(QEvent *);
 	virtual void leaveEvent(QEvent *);

Modified: branches/ScribusOIF/scribus/canvasmode_objimport.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_objimport.cpp
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_objimport.cpp (original)
+++ branches/ScribusOIF/scribus/canvasmode_objimport.cpp Sat Oct  8 18:21:50 2011
@@ -48,7 +48,7 @@
 	m_trSettings = NULL;
 }
 
-CanvasMode_ObjImport::~CanvasMode_ObjImport(void)
+CanvasMode_ObjImport::~CanvasMode_ObjImport()
 {
 	if (m_mimeData)
 		delete m_mimeData;

Modified: branches/ScribusOIF/scribus/canvasmode_objimport.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_objimport.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_objimport.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_objimport.h Sat Oct  8 18:21:50 2011
@@ -35,8 +35,8 @@
 class CanvasMode_ObjImport :  public CanvasMode
 {
 public:
-	CanvasMode_ObjImport(ScribusView* view);
-	~CanvasMode_ObjImport(void);
+	explicit CanvasMode_ObjImport(ScribusView* view);
+	virtual ~CanvasMode_ObjImport();
 
 	void setMimeData(QMimeData* mimeData);
 	void setTransactionSettings(TransactionSettings* settings);

Modified: branches/ScribusOIF/scribus/canvasmode_panning.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_panning.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_panning.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_panning.h Sat Oct  8 18:21:50 2011
@@ -34,7 +34,8 @@
 class CanvasMode_Panning :  public CanvasMode
 {
 public:
-	CanvasMode_Panning(ScribusView* view);
+	explicit CanvasMode_Panning(ScribusView* view);
+	virtual ~CanvasMode_Panning() {}
 
 	virtual void enterEvent(QEvent *);
 	virtual void leaveEvent(QEvent *);

Modified: branches/ScribusOIF/scribus/canvasmode_rotate.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/canvasmode_rotate.h
==============================================================================
--- branches/ScribusOIF/scribus/canvasmode_rotate.h (original)
+++ branches/ScribusOIF/scribus/canvasmode_rotate.h Sat Oct  8 18:21:50 2011
@@ -35,7 +35,8 @@
 class SCRIBUS_API CanvasMode_Rotate : public CanvasMode
 {
 public:
-	CanvasMode_Rotate(ScribusView* view);
+	explicit CanvasMode_Rotate(ScribusView* view);
+	virtual ~CanvasMode_Rotate() {}
 
 	virtual void enterEvent(QEvent *);
 	virtual void leaveEvent(QEvent *);

Modified: branches/ScribusOIF/scribus/commonstrings.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/commonstrings.cpp
==============================================================================
--- branches/ScribusOIF/scribus/commonstrings.cpp (original)
+++ branches/ScribusOIF/scribus/commonstrings.cpp Sat Oct  8 18:21:50 2011
@@ -104,9 +104,13 @@
 QString CommonStrings::DefaultParagraphStyle     ="";
 QString CommonStrings::DefaultCharacterStyle     ="";
 QString CommonStrings::DefaultLineStyle          ="";
+QString CommonStrings::DefaultTableStyle         ="";
+QString CommonStrings::DefaultCellStyle          ="";
 QString CommonStrings::trDefaultParagraphStyle   ="";
 QString CommonStrings::trDefaultCharacterStyle   ="";
 QString CommonStrings::trDefaultLineStyle        ="";
+QString CommonStrings::trDefaultTableStyle       ="";
+QString CommonStrings::trDefaultCellStyle        ="";
 
 
 QString CommonStrings::monday="", CommonStrings::tuesday="", CommonStrings::wednesday="";

Modified: branches/ScribusOIF/scribus/commonstrings.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/commonstrings.h
==============================================================================
--- branches/ScribusOIF/scribus/commonstrings.h (original)
+++ branches/ScribusOIF/scribus/commonstrings.h Sat Oct  8 18:21:50 2011
@@ -171,9 +171,13 @@
 	static QString DefaultParagraphStyle;
 	static QString DefaultCharacterStyle;
 	static QString DefaultLineStyle;
+	static QString DefaultTableStyle;
+	static QString DefaultCellStyle;
 	static QString trDefaultParagraphStyle;
 	static QString trDefaultCharacterStyle;
 	static QString trDefaultLineStyle;
+	static QString trDefaultTableStyle;
+	static QString trDefaultCellStyle;
 
 	//Days and Months
 	static QString monday;

Modified: branches/ScribusOIF/scribus/fpoint.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/fpoint.h
==============================================================================
--- branches/ScribusOIF/scribus/fpoint.h (original)
+++ branches/ScribusOIF/scribus/fpoint.h Sat Oct  8 18:21:50 2011
@@ -26,6 +26,7 @@
 
 #include <QTransform>
 #include <QPoint>
+#include <QPointF>
 #include "scribusapi.h"
 /**
   *@author Franz Schmid
@@ -61,6 +62,8 @@
 	//Transform an existing point, return a new one
 	FPoint transformPoint(const QTransform& m, const bool invert) const;
 	FPoint transformPoint(const double dx, const double dy, const double rot, const double sx, const double sy, const bool invert) const;
+	/// Returns a copy of the point as a QPointF.
+	QPointF toQPointF() const { return QPointF(xp, yp); }
 	friend class FPointArray;
 
 private:

Modified: branches/ScribusOIF/scribus/pageitem.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/pageitem.cpp
==============================================================================
--- branches/ScribusOIF/scribus/pageitem.cpp (original)
+++ branches/ScribusOIF/scribus/pageitem.cpp Sat Oct  8 18:21:50 2011
@@ -28,6 +28,7 @@
 #include <QFont>
 #include <QRegion>
 #include <QPoint>
+#include <QPointF>
 #include <QFileInfo>
 #include <qdrawutil.h>
 #include <QRegExp>
@@ -572,6 +573,10 @@
 		AnName = tr("Spiral");
 		setUPixmap(Um::IPolygon);
 		break;
+	case Table:
+		AnName = tr("Table");
+		//setUPixmap(Um::IPolygon); // TODO: Fix this.
+		break;
 	default:
 		AnName = "Item";
 		break;
@@ -1096,6 +1101,13 @@
 #endif
 }
 
+int PageItem::frameOverflowCount() const
+{
+	if (frameOverflows())
+		return itemText.length() - (lastInFrame() + 1);
+	return 0;
+}
+
 /// returns true if text is ending before that frame
 bool PageItem::frameUnderflows() const
 {
@@ -1105,6 +1117,39 @@
 	//and has been linked with previous frame
 	//if you will find any better solution - fix that function
 	return (firstInFrame() > lastInFrame());
+}
+
+void PageItem::drawOverflowMarker(ScPainter *p)
+{
+	qreal sideLength = 10 / qMax(p->zoomFactor(), 1.0);
+	qreal offset = 1 / qMax(p->zoomFactor(), 1.0);
+	qreal left = Width - sideLength-offset;// / 2;
+	qreal right = left + sideLength;
+	qreal top = Height - sideLength-offset;// * 1.5;
+	qreal bottom = top + sideLength;
+
+	QColor color(PrefsManager::instance()->appPrefs.displayPrefs.frameNormColor);
+	if ((isBookmark) || (m_isAnnotation))
+		color = PrefsManager::instance()->appPrefs.displayPrefs.frameAnnotationColor;
+	if ((BackBox != 0) || (NextBox != 0))
+		color = PrefsManager::instance()->appPrefs.displayPrefs.frameLinkColor;
+	if (m_Locked)
+		color = PrefsManager::instance()->appPrefs.displayPrefs.frameLockColor;
+	if (m_Doc->m_Selection->containsItem(this))
+		color = Qt::red;
+
+	p->save();
+
+	p->setPen(color, 0.5 / p->zoomFactor(), Qt::SolidLine, Qt::FlatCap, Qt::MiterJoin);
+	p->setPenOpacity(1.0);
+	p->setBrush(Qt::white);
+	p->setBrushOpacity(1.0);
+	p->setFillMode(ScPainter::Solid);
+	p->drawRect(left, top, sideLength, sideLength);
+	p->drawLine(QPointF(left, top), QPointF(right, bottom));
+	p->drawLine(QPointF(left, bottom), QPointF(right, top));
+
+	p->restore();
 }
 
 int PageItem::firstInFrame() const
@@ -1639,7 +1684,8 @@
 			p->setBlendModeFill(0);
 	#endif
 			p->setMaskMode(0);
-			if (itemType()==PathText || itemType()==PolyLine || itemType()==Spiral || itemType()==Line || itemType()==Symbol || itemType()==Group)
+			// TODO: Investigate whether itemType()==Table should really be here. I got artifacts without it so keeping it here for now. /estan
+			if (itemType()==PathText || itemType()==PolyLine || itemType()==Spiral || itemType()==Line || itemType()==Symbol || itemType()==Group || itemType()==Table)
 				doStroke=false;
 			if ((doStroke) && (!m_Doc->RePos))
 			{

Modified: branches/ScribusOIF/scribus/pageitem.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/pageitem.h
==============================================================================
--- branches/ScribusOIF/scribus/pageitem.h (original)
+++ branches/ScribusOIF/scribus/pageitem.h Sat Oct  8 18:21:50 2011
@@ -73,6 +73,7 @@
 class PageItem_Polygon;
 class PageItem_PolyLine;
 class PageItem_RegularPolygon;
+class PageItem_Table;
 class PageItem_TextFrame;
 class PageItem_PathText;
 class PageItem_LatexFrame;
@@ -176,6 +177,7 @@
 		RegularPolygon	= 13,
 		Arc				= 14,
 		Spiral			= 15,
+		Table			= 16,
 		Multiple		= 99
 	};
 
@@ -206,6 +208,7 @@
 	virtual PageItem_RegularPolygon * asRegularPolygon() { return NULL; }
 	virtual PageItem_Arc * asArc() { return NULL; }
 	virtual PageItem_Spiral * asSpiral() { return NULL; }
+	virtual PageItem_Table * asTable() { return NULL; }
 
 	virtual bool isImageFrame()		const { return false; }
 	virtual bool isLine()			const { return false; }
@@ -220,6 +223,7 @@
 	virtual bool isRegularPolygon()	const { return false; }
 	virtual bool isArc()			const { return false; }
 	virtual bool isSpiral()			const { return false; }
+	virtual bool isTable()			const { return false; }
 
 	/** @brief Frame Type
 	 *
@@ -351,6 +355,9 @@
 	/// returns true if text overflows
 	bool frameOverflows() const;
 	bool frameUnderflows() const;
+	int frameOverflowCount() const;
+	/// Draws the overflow marker.
+	void drawOverflowMarker(ScPainter *p);
 	/// returns index of first char displayed in this frame, used to be 0
 	int firstInFrame() const;
 	/// returns index of last char displayed in this frame, used to be MaxChars-1

Modified: branches/ScribusOIF/scribus/pageitem_textframe.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/pageitem_textframe.cpp
==============================================================================
--- branches/ScribusOIF/scribus/pageitem_textframe.cpp (original)
+++ branches/ScribusOIF/scribus/pageitem_textframe.cpp Sat Oct  8 18:21:50 2011
@@ -404,7 +404,7 @@
 					if (!m_Doc->RePos)
 					{
 						if (((selecteds && Select) || ((NextBox != 0 || BackBox != 0) && selecteds))
-							&& (m_Doc->appMode == modeEdit))
+							&& (m_Doc->appMode == modeEdit || m_Doc->appMode == modeEditTable))
 						{
 							double xcoZli = selX + hls->glyph.xoffset;
 							desc = - charStyleS.font().descent(charStyleS.fontSize() / 10.0);
@@ -487,7 +487,7 @@
 				{
 					desc = - charStyle.font().descent(charStyle.fontSize() / 10.0);
 					asce = charStyle.font().ascent(charStyle.fontSize() / 10.0);
-					if (((selected && Select) || ((NextBox != 0 || BackBox != 0) && selected)) && (m_Doc->appMode == modeEdit))
+					if (((selected && Select) || ((NextBox != 0 || BackBox != 0) && selected)) && (m_Doc->appMode == modeEdit || m_Doc->appMode == modeEditTable))
 					{
 						// set text color to highlight if its selected
 						p->setBrush(qApp->palette().color(QPalette::Active, QPalette::HighlightedText));
@@ -702,7 +702,7 @@
 
 		//Draw the overflow icon
 		if (frameOverflows())
-		{//CB && added here for jghali prior to commit access
+		{
 			if ((!m_Doc->drawAsPreview))
 				drawOverflowMarker(p);
 		}
@@ -1479,12 +1479,13 @@
 //	return (Width - (ColGap * (Cols - 1)) - Extra - RExtra - lineCorr) / Cols;
 }
 
+/*
 void PageItem_TextFrame::drawOverflowMarker(ScPainter *p)
 {
 	qreal sideLength = 10 / qMax(p->zoomFactor(), 1.0);
-	qreal left  = Width  - sideLength / 2;
+	qreal left  = Width  - sideLength;// / 2;
 	qreal right = left   + sideLength;
-	qreal top   = Height - sideLength * 1.5;
+	qreal top   = Height - sideLength;// * 1.5;
 	qreal bottom = top   + sideLength;
 
 	QColor color(PrefsManager::instance()->appPrefs.displayPrefs.frameNormColor);
@@ -1506,6 +1507,7 @@
 	p->drawLine(FPoint(left, top), FPoint(right, bottom));
 	p->drawLine(FPoint(left, bottom), FPoint(right, top));
 }
+*/
 
 void PageItem_TextFrame::drawColumnBorders(ScPainter *p)
 {

Modified: branches/ScribusOIF/scribus/pageitem_textframe.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/pageitem_textframe.h
==============================================================================
--- branches/ScribusOIF/scribus/pageitem_textframe.h (original)
+++ branches/ScribusOIF/scribus/pageitem_textframe.h Sat Oct  8 18:21:50 2011
@@ -82,7 +82,7 @@
 	virtual void DrawObj_Item(ScPainter *p, QRectF e);
 	virtual void DrawObj_Post(ScPainter *p);
 	virtual void DrawObj_Decoration(ScPainter *p);
-	void drawOverflowMarker(ScPainter *p);
+	//void drawOverflowMarker(ScPainter *p);
 	void drawUnderflowMarker(ScPainter *p);
 	void drawColumnBorders(ScPainter *p);
 

Modified: branches/ScribusOIF/scribus/plugins/fileloader/scribus150format/scribus150format.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/plugins/fileloader/scribus150format/scribus150format.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/fileloader/scribus150format/scribus150format.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/fileloader/scribus150format/scribus150format.cpp Sat Oct  8 18:21:50 2011
@@ -3403,6 +3403,13 @@
 		if (pagenr > -2) 
 			currItem->OwnPage = pagenr;
 		break;
+	case PageItem::Table:
+		// TODO: Actually handle pasting of tables properly.
+		z = doc->itemAdd(PageItem::Table, PageItem::Unspecified, x, y, w, h, 0.0, CommonStrings::None, CommonStrings::None, true);
+		currItem = doc->Items->at(z);
+		if (pagenr > -2)
+			currItem->OwnPage = pagenr;
+		break;
 	case PageItem::Line:
 		z = doc->itemAdd(PageItem::Line, PageItem::Unspecified, x, y, w, h, pw, CommonStrings::None, Pcolor2, true);
 		currItem = doc->Items->at(z);

Modified: branches/ScribusOIF/scribus/plugins/scriptplugin/CMakeLists.txt
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/plugins/scriptplugin/CMakeLists.txt
==============================================================================
--- branches/ScribusOIF/scribus/plugins/scriptplugin/CMakeLists.txt (original)
+++ branches/ScribusOIF/scribus/plugins/scriptplugin/CMakeLists.txt Sat Oct  8 18:21:50 2011
@@ -23,6 +23,7 @@
 )
 
 SET(SCRIPTER_PLUGIN_SOURCES
+  cmdcell.cpp
   cmdcolor.cpp
   cmddialog.cpp
   cmddoc.cpp
@@ -34,6 +35,7 @@
   cmdpage.cpp
   cmdsetprop.cpp
   cmdstyle.cpp
+  cmdtable.cpp
   cmdtext.cpp
   cmdutil.cpp
   guiapp.cpp

Modified: branches/ScribusOIF/scribus/plugins/scriptplugin/cmdobj.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/plugins/scriptplugin/cmdobj.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/scriptplugin/cmdobj.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/scriptplugin/cmdobj.cpp Sat Oct  8 18:21:50 2011
@@ -11,6 +11,7 @@
 #include "commonstrings.h"
 #include "scribuscore.h"
 #include "scribusdoc.h"
+#include "pageitem_table.h"
 
 PyObject *scribus_newrect(PyObject* /* self */, PyObject* args)
 {
@@ -116,6 +117,43 @@
 			ScCore->primaryMainWindow()->doc->Items->at(i)->setItemName(objName);
 	}
 	return PyString_FromString(ScCore->primaryMainWindow()->doc->Items->at(i)->itemName().toUtf8());
+}
+
+PyObject *scribus_newtable(PyObject* /* self */, PyObject* args)
+{
+	double x, y, w, h;
+	int numRows, numColumns;
+	char *Name = const_cast<char*>("");
+	if (!PyArg_ParseTuple(args, "ddddii|es", &x, &y, &w, &h, &numRows, &numColumns, "utf-8", &Name))
+		return NULL;
+	if (!checkHaveDocument())
+		return NULL;
+	if (numRows < 1 || numColumns < 1)
+	{
+		PyErr_SetString(PyExc_ValueError, QObject::tr("Both numRows and numColumns must be greater than 0.","python error").toLocal8Bit().constData());
+		return NULL;
+	}
+	int i = ScCore->primaryMainWindow()->doc->itemAdd(PageItem::Table, PageItem::Unspecified,
+								pageUnitXToDocX(x),
+								pageUnitYToDocY(y),
+								ValueToPoint(w),
+								ValueToPoint(h),
+								0,                    // Unused.
+								CommonStrings::None,  // Unused.
+								CommonStrings::None,  // Unused.
+								true);
+	PageItem_Table *table = ScCore->primaryMainWindow()->doc->Items->at(i)->asTable();
+	table->insertRows(0, numRows - 1);
+	table->insertColumns(0, numColumns - 1);
+	table->adjustTableToFrame();
+	table->adjustFrameToTable();
+	if (Name != EMPTY_STRING)
+	{
+		QString objName = QString::fromUtf8(Name);
+		if (!ItemExists(objName))
+			ScCore->primaryMainWindow()->doc->Items->at(i)->setItemName(objName);
+	}
+	return PyString_FromString(table->itemName().toUtf8());
 }
 
 PyObject *scribus_newline(PyObject* /* self */, PyObject* args)
@@ -663,5 +701,5 @@
 void cmdobjdocwarnings()
 {
     QStringList s;
-    s << scribus_newrect__doc__ <<scribus_newellipse__doc__ << scribus_newimage__doc__ << scribus_newtext__doc__ << scribus_newline__doc__ <<scribus_polyline__doc__ << scribus_polygon__doc__ << scribus_bezierline__doc__ <<scribus_pathtext__doc__ <<scribus_deleteobj__doc__ <<scribus_textflow__doc__ <<scribus_objectexists__doc__ <<scribus_setstyle__doc__ <<scribus_getstylenames__doc__ <<scribus_duplicateobject__doc__;
-}
+	s << scribus_newrect__doc__ <<scribus_newellipse__doc__ << scribus_newimage__doc__ << scribus_newtext__doc__ << scribus_newtable__doc__ << scribus_newline__doc__ <<scribus_polyline__doc__ << scribus_polygon__doc__ << scribus_bezierline__doc__ <<scribus_pathtext__doc__ <<scribus_deleteobj__doc__ <<scribus_textflow__doc__ <<scribus_objectexists__doc__ <<scribus_setstyle__doc__ <<scribus_getstylenames__doc__ <<scribus_duplicateobject__doc__;
+}

Modified: branches/ScribusOIF/scribus/plugins/scriptplugin/cmdobj.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/plugins/scriptplugin/cmdobj.h
==============================================================================
--- branches/ScribusOIF/scribus/plugins/scriptplugin/cmdobj.h (original)
+++ branches/ScribusOIF/scribus/plugins/scriptplugin/cmdobj.h Sat Oct  8 18:21:50 2011
@@ -75,6 +75,22 @@
 "));
 /** Creates a text frame - x, y, b, h and opt. name. */
 PyObject *scribus_newtext(PyObject * /*self*/, PyObject* args);
+
+/*! docstring */
+PyDoc_STRVAR(scribus_newtable__doc__,
+QT_TR_NOOP("createTable(x, y, width, height, numRows, numColumns, [\"name\"]) -> string\n\
+\n\
+Creates a new table with the given number of rows and columns on the actual page\n\
+and returns its name. The coordinates are given in the actual measurement unit of\n\
+the document (see UNIT constants). \"name\" should be a unique identifier for\n\
+the object because you need this name for further referencing of that object. If\n\
+\"name\" is not given Scribus will create one for you.\n\
+\n\
+May raise NameExistsError if you explicitly pass a name that's already used.\n\
+May raise ValueError if an insufficient number of rows or columns is passed.\n\
+"));
+/** Creates a table - x, y, width, height, numRows, numColumns and opt. name. */
+PyObject *scribus_newtable(PyObject * /*self*/, PyObject* args);
 
 /*! docstring */
 PyDoc_STRVAR(scribus_newline__doc__,

Modified: branches/ScribusOIF/scribus/plugins/scriptplugin/cmdutil.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/plugins/scriptplugin/cmdutil.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/scriptplugin/cmdutil.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/scriptplugin/cmdutil.cpp Sat Oct  8 18:21:50 2011
@@ -9,6 +9,7 @@
 #include "scribuscore.h"
 #include "scribusdoc.h"
 #include "selection.h"
+#include "tableborder.h"
 #include "units.h"
 
 ScribusMainWindow* Carrier;
@@ -244,3 +245,51 @@
 	}
 	return true;
 }
+
+TableBorder parseBorder(PyObject* borderLines, bool* ok)
+{
+	TableBorder border;
+
+	if (!PyList_Check(borderLines))
+	{
+		PyErr_SetString(PyExc_ValueError, QObject::tr("Expected a list of border lines", "python error").toLocal8Bit().constData());
+		*ok = false;
+		return border;
+	}
+
+	// Get the sequence of border lines.
+	PyObject* borderLinesList = PySequence_List(borderLines);
+	if (borderLinesList == NULL)
+	{
+		PyErr_SetString(PyExc_ValueError, QObject::tr("Expected a list of border lines", "python error").toLocal8Bit().constData());
+		*ok = false;
+		return border;
+	}
+
+	// Parse each tuple decribing a border line and append it to the border.
+	int nBorderLines = PyList_Size(borderLinesList);
+	for (int i = 0; i < nBorderLines; i++) {
+		double width = 0.0;
+		int style;
+		char* color;
+		PyObject* props = PyList_GET_ITEM(borderLinesList, i);
+		if (!PyArg_ParseTuple(props, "dies", &width, &style, "utf-8", &color))
+		{
+			PyErr_SetString(PyExc_ValueError, QObject::tr("Border lines are specified as (width,style,color) tuples", "python error").toLocal8Bit().constData());
+			*ok = false;
+			return border;
+		}
+		if (width <= 0.0)
+		{
+			PyErr_SetString(PyExc_ValueError, QObject::tr("Border line width must be > 0.0", "python error").toLocal8Bit().constData());
+			*ok = false;
+			return border;
+		}
+		border.addBorderLine(TableBorderLine(width, static_cast<Qt::PenStyle>(style), QString::fromUtf8(color)));
+	}
+	Py_DECREF(borderLinesList);
+
+	*ok = true;
+	return border;
+}
+

Modified: branches/ScribusOIF/scribus/plugins/scriptplugin/cmdutil.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/plugins/scriptplugin/cmdutil.h
==============================================================================
--- branches/ScribusOIF/scribus/plugins/scriptplugin/cmdutil.h (original)
+++ branches/ScribusOIF/scribus/plugins/scriptplugin/cmdutil.h Sat Oct  8 18:21:50 2011
@@ -68,4 +68,8 @@
  */
 bool setSelectedItemsByName(QStringList& itemNames);
 
+/// Helper method to parse a border from a list of tuples.
+TableBorder parseBorder(PyObject* borderLines, bool* ok);
+
+
 #endif

Modified: branches/ScribusOIF/scribus/plugins/scriptplugin/scriptplugin.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/plugins/scriptplugin/scriptplugin.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/scriptplugin/scriptplugin.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/scriptplugin/scriptplugin.cpp Sat Oct  8 18:21:50 2011
@@ -23,6 +23,7 @@
 
 // include cmdvar.h first, as it pulls in <Python.h>
 #include "cmdvar.h"
+#include "cmdcell.h"
 #include "cmdcolor.h"
 #include "cmddialog.h"
 #include "cmddoc.h"
@@ -33,6 +34,7 @@
 #include "cmdobj.h"
 #include "cmdpage.h"
 #include "cmdsetprop.h"
+#include "cmdtable.h"
 #include "cmdtext.h"
 #include "cmdutil.h"
 #include "cmdstyle.h"
@@ -314,6 +316,7 @@
 	{const_cast<char*>("createPolyLine"), scribus_polyline, METH_VARARGS, tr(scribus_polyline__doc__)},
 	{const_cast<char*>("createRect"), scribus_newrect, METH_VARARGS, tr(scribus_newrect__doc__)},
 	{const_cast<char*>("createText"), scribus_newtext, METH_VARARGS, tr(scribus_newtext__doc__)},
+	{const_cast<char*>("createTable"), scribus_newtable, METH_VARARGS, tr(scribus_newtable__doc__)},
 	{const_cast<char*>("createParagraphStyle"), (PyCFunction)scribus_createparagraphstyle, METH_KEYWORDS, tr(scribus_createparagraphstyle__doc__)},
 	{const_cast<char*>("createCharStyle"), (PyCFunction)scribus_createcharstyle, METH_KEYWORDS, tr(scribus_createcharstyle__doc__)},
 	{const_cast<char*>("currentPage"), (PyCFunction)scribus_actualpage, METH_NOARGS, tr(scribus_actualpage__doc__)},
@@ -336,6 +339,10 @@
 	{const_cast<char*>("getAllObjects"), scribus_getallobj, METH_VARARGS, tr(scribus_getallobj__doc__)},
 	{const_cast<char*>("getAllStyles"), (PyCFunction)scribus_getstylenames, METH_NOARGS, tr(scribus_getstylenames__doc__)},
 	{const_cast<char*>("getAllText"), scribus_gettext, METH_VARARGS, tr(scribus_gettext__doc__)},
+	{const_cast<char*>("getCellStyle"), scribus_getcellstyle, METH_VARARGS, tr(scribus_getcellstyle__doc__)},
+	{const_cast<char*>("getCellColumnSpan"), scribus_getcellcolumnspan, METH_VARARGS, tr(scribus_getcellcolumnspan__doc__)},
+	{const_cast<char*>("getCellRowSpan"), scribus_getcellrowspan, METH_VARARGS, tr(scribus_getcellrowspan__doc__)},
+	{const_cast<char*>("getCellFillColor"), scribus_getcellfillcolor, METH_VARARGS, tr(scribus_getcellfillcolor__doc__)},
 	{const_cast<char*>("getColorNames"), (PyCFunction)scribus_colornames, METH_NOARGS, tr(scribus_colornames__doc__)},
 	{const_cast<char*>("getColor"), scribus_getcolor, METH_VARARGS, tr(scribus_getcolor__doc__)},
 	{const_cast<char*>("getColorAsRGB"), scribus_getcolorasrgb, METH_VARARGS, tr(scribus_getcolorasrgb__doc__)},
@@ -380,6 +387,12 @@
 	{const_cast<char*>("getObjectType"), scribus_getobjecttype, METH_VARARGS, tr(scribus_getobjecttype__doc__)},
 	{const_cast<char*>("getSelectedObject"), scribus_getselobjnam, METH_VARARGS, tr(scribus_getselobjnam__doc__)},
 	{const_cast<char*>("getSize"), scribus_getsize, METH_VARARGS, tr(scribus_getsize__doc__)},
+	{const_cast<char*>("getTableRows"), scribus_gettablerows, METH_VARARGS, tr(scribus_gettablerows__doc__)},
+	{const_cast<char*>("getTableRowHeight"), scribus_gettablerowheight, METH_VARARGS, tr(scribus_gettablerowheight__doc__)},
+	{const_cast<char*>("getTableColumns"), scribus_gettablecolumns, METH_VARARGS, tr(scribus_gettablecolumns__doc__)},
+	{const_cast<char*>("getTableColumnWidth"), scribus_gettablecolumnwidth, METH_VARARGS, tr(scribus_gettablecolumnwidth__doc__)},
+	{const_cast<char*>("getTableStyle"), scribus_gettablestyle, METH_VARARGS, tr(scribus_gettablestyle__doc__)},
+	{const_cast<char*>("getTableFillColor"), scribus_gettablefillcolor, METH_VARARGS, tr(scribus_gettablefillcolor__doc__)},
 	{const_cast<char*>("getTextColor"), scribus_getlinecolor, METH_VARARGS, tr(scribus_getlinecolor__doc__)},
 	{const_cast<char*>("getTextLength"), scribus_gettextsize, METH_VARARGS, tr(scribus_gettextsize__doc__)},
 	{const_cast<char*>("getTextLines"), scribus_gettextlines, METH_VARARGS, tr(scribus_gettextlines__doc__)},
@@ -396,6 +409,8 @@
 	{const_cast<char*>("placeEPS"), scribus_placevec, METH_VARARGS, tr(scribus_placeeps__doc__)},
 	{const_cast<char*>("placeSXD"), scribus_placevec, METH_VARARGS, tr(scribus_placesxd__doc__)},
 	{const_cast<char*>("placeODG"), scribus_placevec, METH_VARARGS, tr(scribus_placeodg__doc__)},
+	{const_cast<char*>("insertTableRows"), scribus_inserttablerows, METH_VARARGS, tr(scribus_inserttablerows__doc__)},
+	{const_cast<char*>("insertTableColumns"), scribus_inserttablecolumns, METH_VARARGS, tr(scribus_inserttablecolumns__doc__)},
 	{const_cast<char*>("insertText"), scribus_inserttext, METH_VARARGS, tr(scribus_inserttext__doc__)},
 	{const_cast<char*>("isLayerPrintable"), scribus_glayerprint, METH_VARARGS, tr(scribus_glayerprint__doc__)},
 	{const_cast<char*>("isLayerVisible"), scribus_glayervisib, METH_VARARGS, tr(scribus_glayervisib__doc__)},
@@ -408,6 +423,7 @@
 	{const_cast<char*>("loadStylesFromFile"), scribus_loadstylesfromfile, METH_VARARGS, tr(scribus_loadstylesfromfile__doc__)},
 	{const_cast<char*>("lockObject"), scribus_lockobject, METH_VARARGS, tr(scribus_lockobject__doc__)},
 	{const_cast<char*>("masterPageNames"), (PyCFunction)scribus_masterpagenames, METH_NOARGS, tr(scribus_masterpagenames__doc__)},
+	{const_cast<char*>("mergeTableCells"), scribus_mergetablecells, METH_VARARGS, tr(scribus_mergetablecells__doc__)},
 	{const_cast<char*>("messagebarText"), scribus_messagebartext, METH_VARARGS, tr(scribus_messagebartext__doc__)},
 	{const_cast<char*>("messageBox"), (PyCFunction)scribus_messdia, METH_VARARGS|METH_KEYWORDS, tr(scribus_messdia__doc__)},
 	{const_cast<char*>("moveObjectAbs"), scribus_moveobjabs, METH_VARARGS, tr(scribus_moveobjabs__doc__)},
@@ -425,8 +441,12 @@
 	{const_cast<char*>("progressSet"), scribus_progresssetprogress, METH_VARARGS, tr(scribus_progresssetprogress__doc__)},
 	{const_cast<char*>("progressTotal"), scribus_progresssettotalsteps, METH_VARARGS, tr(scribus_progresssettotalsteps__doc__)},
 	{const_cast<char*>("redrawAll"), (PyCFunction)scribus_redraw, METH_NOARGS, tr(scribus_redraw__doc__)},
+	{const_cast<char*>("removeTableRows"), scribus_removetablerows, METH_VARARGS, tr(scribus_removetablerows__doc__)},
+	{const_cast<char*>("removeTableColumns"), scribus_removetablecolumns, METH_VARARGS, tr(scribus_removetablecolumns__doc__)},
 	{const_cast<char*>("renderFont"), (PyCFunction)scribus_renderfont, METH_KEYWORDS, tr(scribus_renderfont__doc__)},
 	{const_cast<char*>("replaceColor"), scribus_replcolor, METH_VARARGS, tr(scribus_replcolor__doc__)},
+	{const_cast<char*>("resizeTableColumn"), scribus_resizetablecolumn, METH_VARARGS, tr(scribus_resizetablecolumn__doc__)},
+	{const_cast<char*>("resizeTableRow"), scribus_resizetablerow, METH_VARARGS, tr(scribus_resizetablerow__doc__)},
 	{const_cast<char*>("rotateObjectAbs"), scribus_rotobjabs, METH_VARARGS, tr(scribus_rotobjabs__doc__)},
 	{const_cast<char*>("rotateObject"), scribus_rotobjrel, METH_VARARGS, tr(scribus_rotobjrel__doc__)},
 	{const_cast<char*>("getDocName"), (PyCFunction)scribus_getdocname, METH_NOARGS, tr(scribus_getdocname__doc__)},
@@ -447,6 +467,17 @@
 	{const_cast<char*>("setPDFBookmark"), scribus_setpdfbookmark, METH_VARARGS, tr(scribus_setpdfbookmark__doc__)},
 	{const_cast<char*>("isPDFBookmark"), scribus_ispdfbookmark, METH_VARARGS, tr(scribus_ispdfbookmark__doc__)},
 	{const_cast<char*>("setTextDistances"), scribus_settextdistances, METH_VARARGS, tr(scribus_settextdistances__doc__)},
+	{const_cast<char*>("setCellStyle"), scribus_setcellstyle, METH_VARARGS, tr(scribus_setcellstyle__doc__)},
+	{const_cast<char*>("setCellText"), scribus_setcelltext, METH_VARARGS, tr(scribus_setcelltext__doc__)},
+	{const_cast<char*>("setCellFillColor"), scribus_setcellfillcolor, METH_VARARGS, tr(scribus_setcellfillcolor__doc__)},
+	{const_cast<char*>("setCellLeftBorder"), scribus_setcellleftborder, METH_VARARGS, tr(scribus_setcellleftborder__doc__)},
+	{const_cast<char*>("setCellLeftPadding"), scribus_setcellleftpadding, METH_VARARGS, tr(scribus_setcellleftpadding__doc__)},
+	{const_cast<char*>("setCellRightBorder"), scribus_setcellrightborder, METH_VARARGS, tr(scribus_setcellrightborder__doc__)},
+	{const_cast<char*>("setCellRightPadding"), scribus_setcellrightpadding, METH_VARARGS, tr(scribus_setcellrightpadding__doc__)},
+	{const_cast<char*>("setCellTopBorder"), scribus_setcelltopborder, METH_VARARGS, tr(scribus_setcelltopborder__doc__)},
+	{const_cast<char*>("setCellTopPadding"), scribus_setcelltoppadding, METH_VARARGS, tr(scribus_setcelltoppadding__doc__)},
+	{const_cast<char*>("setCellBottomBorder"), scribus_setcellbottomborder, METH_VARARGS, tr(scribus_setcellbottomborder__doc__)},
+	{const_cast<char*>("setCellBottomPadding"), scribus_setcellbottompadding, METH_VARARGS, tr(scribus_setcellbottompadding__doc__)},
 	{const_cast<char*>("setColumnGap"), scribus_setcolumngap, METH_VARARGS, tr(scribus_setcolumngap__doc__)},
 	{const_cast<char*>("setColumns"), scribus_setcolumns, METH_VARARGS, tr(scribus_setcolumns__doc__)},
 	{const_cast<char*>("setCornerRadius"), scribus_setcornerrad, METH_VARARGS, tr(scribus_setcornerrad__doc__)},
@@ -489,6 +520,12 @@
 	{const_cast<char*>("dehyphenateText"), scribus_dehyphenatetext, METH_VARARGS, tr(scribus_dehyphenatetext__doc__)},
 	{const_cast<char*>("setScaleImageToFrame"), (PyCFunction)scribus_setscaleimagetoframe, METH_KEYWORDS, tr(scribus_setscaleimagetoframe__doc__)},
 	{const_cast<char*>("setStyle"), scribus_setstyle, METH_VARARGS, tr(scribus_setstyle__doc__)},
+	{const_cast<char*>("setTableStyle"), scribus_settablestyle, METH_VARARGS, tr(scribus_settablestyle__doc__)},
+	{const_cast<char*>("setTableLeftBorder"), scribus_settableleftborder, METH_VARARGS, tr(scribus_settableleftborder__doc__)},
+	{const_cast<char*>("setTableRightBorder"), scribus_settablerightborder, METH_VARARGS, tr(scribus_settablerightborder__doc__)},
+	{const_cast<char*>("setTableTopBorder"), scribus_settabletopborder, METH_VARARGS, tr(scribus_settabletopborder__doc__)},
+	{const_cast<char*>("setTableBottomBorder"), scribus_settablebottomborder, METH_VARARGS, tr(scribus_settablebottomborder__doc__)},
+	{const_cast<char*>("setTableFillColor"), scribus_settablefillcolor, METH_VARARGS, tr(scribus_settablefillcolor__doc__)},
 	{const_cast<char*>("setTextAlignment"), scribus_setalign, METH_VARARGS, tr(scribus_setalign__doc__)},
 	{const_cast<char*>("setTextColor"), scribus_settextfill, METH_VARARGS, tr(scribus_settextfill__doc__)},
 	{const_cast<char*>("setText"), scribus_setboxtext, METH_VARARGS, tr(scribus_setboxtext__doc__)},

Modified: branches/ScribusOIF/scribus/plugins/short-words/swdialog.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/plugins/short-words/swdialog.cpp
==============================================================================
--- branches/ScribusOIF/scribus/plugins/short-words/swdialog.cpp (original)
+++ branches/ScribusOIF/scribus/plugins/short-words/swdialog.cpp Sat Oct  8 18:21:50 2011
@@ -103,10 +103,10 @@
 void SWDialog::languageChange()
 {
 	setWindowTitle( tr("Short Words", "short words plugin"));
-	buttonGroup->setTitle( tr("Apply unbreakable space on:", "short words plugin"));
-	frameRadio->setText( tr("&Selected frames", "short words plugin"));
-	pageRadio->setText( tr("Active &page", "short words plugin"));
-	allRadio->setText( tr("&All items", "short words plugin"));
+	buttonGroup->setTitle( tr("Apply Unbreakable Space To:", "short words plugin"));
+	frameRadio->setText( tr("&Selected Frames", "short words plugin"));
+	pageRadio->setText( tr("Active &Page", "short words plugin"));
+	allRadio->setText( tr("&All Items", "short words plugin"));
 // 	okButton->setText(CommonStrings::tr_OK);
 // 	cancelButton->setText(CommonStrings::tr_Cancel);
 	frameRadio->setToolTip( tr("Only selected frames processed.", "short words plugin"));

Modified: branches/ScribusOIF/scribus/plugins/short-words/swdialog.ui
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/plugins/short-words/swdialog.ui
==============================================================================
--- branches/ScribusOIF/scribus/plugins/short-words/swdialog.ui (original)
+++ branches/ScribusOIF/scribus/plugins/short-words/swdialog.ui Sat Oct  8 18:21:50 2011
@@ -17,7 +17,7 @@
    <item row="0" column="0">
     <widget class="QGroupBox" name="buttonGroup">
      <property name="title">
-      <string>Apply Unbreakable Space On:</string>
+      <string>Apply Unbreakable Space To:</string>
      </property>
      <layout class="QGridLayout" name="gridLayout">
       <item row="0" column="0">

Modified: branches/ScribusOIF/scribus/resourcecollection.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/resourcecollection.h
==============================================================================
--- branches/ScribusOIF/scribus/resourcecollection.h (original)
+++ branches/ScribusOIF/scribus/resourcecollection.h Sat Oct  8 18:21:50 2011
@@ -22,6 +22,9 @@
 #include <QString>
 #include "vgradient.h"
 
+class ColorList;
+class SCFonts;
+
 /** 
 *   A simple structure which holds the names of all resources & styles used in a doc or part of a document.
 *   Also holds pointers to the doc's fontset and colorset.
@@ -45,6 +48,8 @@
 	void collectStyle(const QString& name)     { if (!name.isEmpty()) m_pstyles.insert(name,name); }
 	void collectCharStyle(const QString& name) { if (!name.isEmpty()) m_cstyles.insert(name,name); }
 	void collectLineStyle(const QString& name) { if (!name.isEmpty()) m_linestyles.insert(name,name); }
+	void collectTableStyle(const QString& name) { if (!name.isEmpty()) m_tableStyles.insert(name,name); }
+	void collectCellStyle(const QString& name) { if (!name.isEmpty()) m_cellStyles.insert(name,name); }
 	
 	void mapFont(const QString& oldname, const QString& newname)      { m_fonts.insert(oldname, newname); }
 	void mapPattern(const QString& oldname, const QString& newname)   { m_patterns.insert(oldname, newname); }
@@ -53,6 +58,8 @@
 	void mapStyle(const QString& oldname, const QString& newname)     { m_pstyles.insert(oldname, newname); }
 	void mapCharStyle(const QString& oldname, const QString& newname) { m_cstyles.insert(oldname, newname); }
 	void mapLineStyle(const QString& oldname, const QString& newname) { m_linestyles.insert(oldname, newname); }
+	void mapTableStyle(const QString& oldname, const QString& newname) { m_tableStyles.insert(oldname, newname); }
+	void mapCellStyle(const QString& oldname, const QString& newname) { m_cellStyles.insert(oldname, newname); }
 	
 	void mapFonts(const QMap<QString,QString>& newnames)      { m_fonts = newnames; }
 	void mapPatterns(const QMap<QString,QString>& newnames)   { m_patterns = newnames; }
@@ -61,6 +68,8 @@
 	void mapStyles(const QMap<QString,QString>& newnames)     { m_pstyles = newnames; }
 	void mapCharStyles(const QMap<QString,QString>& newnames) { m_cstyles = newnames; }
 	void mapLineStyles(const QMap<QString,QString>& newnames) { m_linestyles = newnames; }
+	void mapTableStyles(const QMap<QString,QString>& newnames) { m_tableStyles = newnames; }
+	void mapCellStyles(const QMap<QString,QString>& newnames) { m_cellStyles = newnames; }
 	
 	const QMap<QString, QString>& fonts()      { return m_fonts; }
 	const QMap<QString, QString>& patterns()   { return m_patterns; }
@@ -69,6 +78,8 @@
 	const QMap<QString, QString>& styles()     { return m_pstyles; }
 	const QMap<QString, QString>& charStyles() { return m_cstyles; }
 	const QMap<QString, QString>& lineStyles() { return m_linestyles; }
+	const QMap<QString, QString>& tableStyles() { return m_tableStyles; }
+	const QMap<QString, QString>& cellStyles() { return m_cellStyles; }
 	
 	QList<QString> fontNames() const      { return m_fonts.keys(); }
 	QList<QString> patternNames() const   { return m_patterns.keys(); }
@@ -77,6 +88,8 @@
 	QList<QString> styleNames() const     { return m_pstyles.keys(); }
 	QList<QString> charStyleNames() const { return m_cstyles.keys(); }
 	QList<QString> lineStyleNames() const { return m_linestyles.keys(); }
+	QList<QString> tableStyleNames() const { return m_tableStyles.keys(); }
+	QList<QString> cellStyleNames() const { return m_cellStyles.keys(); }
 
 	// modifies newNames so that forall x in both newNames.key() and in existingNames, newNames[x] will map to a new unique name
 	static void makeUnique(QMap<QString,QString>& newNames, const QList<QString> existingNames);
@@ -94,6 +107,8 @@
 	QMap<QString,QString> m_pstyles;
 	QMap<QString,QString> m_cstyles;
 	QMap<QString,QString> m_linestyles;
+	QMap<QString,QString> m_tableStyles;
+	QMap<QString,QString> m_cellStyles;
 };
 
 

Modified: branches/ScribusOIF/scribus/scpainter.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/scpainter.cpp
==============================================================================
--- branches/ScribusOIF/scribus/scpainter.cpp (original)
+++ branches/ScribusOIF/scribus/scpainter.cpp Sat Oct  8 18:21:50 2011
@@ -478,6 +478,11 @@
 	cairo_translate (m_cr, x, y);
 }
 
+void ScPainter::translate( const QPointF& offset )
+{
+	cairo_translate (m_cr, offset.x(), offset.y());
+}
+
 void ScPainter::rotate( double r )
 {
 	cairo_rotate (m_cr, r * 3.1415927 / 180.0);
@@ -1858,6 +1863,14 @@
 	strokePath();
 }
 
+void ScPainter::drawLine(const QPointF& start, const QPointF& end)
+{
+	newPath();
+	moveTo(start.x(), start.y());
+	lineTo(end.x(), end.y());
+	strokePath();
+}
+
 void ScPainter::drawRect(double x, double y, double w, double h)
 {
 	newPath();

Modified: branches/ScribusOIF/scribus/scpainter.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/scpainter.h
==============================================================================
--- branches/ScribusOIF/scribus/scpainter.h (original)
+++ branches/ScribusOIF/scribus/scpainter.h Sat Oct  8 18:21:50 2011
@@ -16,6 +16,7 @@
 #include <QTransform>
 #include <QFont>
 #include <QImage>
+#include <QPointF>
 #include "scribusapi.h"
 #include "scconfig.h"
 #include "fpoint.h"
@@ -48,6 +49,7 @@
 	virtual void setZoomFactor( double );
 	virtual double zoomFactor() { return m_zoomFactor; }
 	virtual void translate( double, double );
+	virtual void translate( const QPointF& offset );
 	virtual void rotate( double );
 	virtual void scale( double, double );
 
@@ -85,6 +87,7 @@
 	virtual void drawPolygon();
 	virtual void drawPolyLine();
 	virtual void drawLine(FPoint start, FPoint end);
+	virtual void drawLine(const QPointF& start, const QPointF& end);
 	virtual void drawRect(double, double, double, double);
 	virtual void drawText(QRectF area, QString text);
 

Modified: branches/ScribusOIF/scribus/scribus.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/scribus.cpp
==============================================================================
--- branches/ScribusOIF/scribus/scribus.cpp (original)
+++ branches/ScribusOIF/scribus/scribus.cpp Sat Oct  8 18:21:50 2011
@@ -101,6 +101,7 @@
 #include "langmgr.h"
 #include "pageitem_imageframe.h"
 #include "pageitem_latexframe.h"
+#include "pageitem_table.h"
 #include "pageitem_textframe.h"
 #include "pagesize.h"
 #include "pdflib.h"
@@ -202,7 +203,9 @@
 #include "ui/scmwmenumanager.h"
 #include "ui/selectobjects.h"
 #include "ui/search.h"
+#include "ui/smcellstyle.h"
 #include "ui/smlinestyle.h"
+#include "ui/smtablestyle.h"
 #include "ui/smtextstyles.h"
 #include "ui/splash.h"
 #include "ui/storyeditor.h"
@@ -583,6 +586,8 @@
 	SMCharacterStyle *tmpCS = new SMCharacterStyle();
 	styleManager->addStyle(new SMParagraphStyle(tmpCS->tmpStyles()));
 	styleManager->addStyle(tmpCS);
+	styleManager->addStyle(new SMTableStyle());
+	styleManager->addStyle(new SMCellStyle());
 	connect( scrActions["editStyles"], SIGNAL(toggled(bool)), styleManager, SLOT(setPaletteShown(bool)) );
 	connect( styleManager, SIGNAL(paletteShown(bool)), scrActions["editStyles"], SLOT(setChecked(bool)));
 	styleManager->installEventFilter(this);
@@ -773,6 +778,27 @@
 	scrMenuMgr->addMenuToMenu("itemSendToScrapbook", "Item");
 //	scrMenuMgr->addMenuItem(scrActions["itemSendToScrapbook"], "Item", false);
 	scrMenuMgr->addMenuItem(scrActions["itemSendToPattern"], "Item", false);
+	// Table submenu.
+	scrMenuMgr->addMenuSeparator("Item");
+	scrMenuMgr->createMenu("ItemTable", tr("Table"));
+	scrMenuMgr->addMenuToMenu("ItemTable", "Item");
+	scrMenuMgr->addMenuItem(scrActions["tableInsertRows"], "ItemTable", false);
+	scrMenuMgr->addMenuItem(scrActions["tableInsertColumns"], "ItemTable", false);
+	scrMenuMgr->addMenuItem(scrActions["tableDeleteRows"], "ItemTable", false);
+	scrMenuMgr->addMenuItem(scrActions["tableDeleteColumns"], "ItemTable", false);
+	scrMenuMgr->addMenuSeparator("ItemTable");
+	scrMenuMgr->addMenuItem(scrActions["tableMergeCells"], "ItemTable", false);
+	scrMenuMgr->addMenuItem(scrActions["tableSplitCells"], "ItemTable", false);
+	scrMenuMgr->addMenuSeparator("ItemTable");
+	scrMenuMgr->addMenuItem(scrActions["tableSetRowHeights"], "ItemTable", false);
+	scrMenuMgr->addMenuItem(scrActions["tableSetColumnWidths"], "ItemTable", false);
+	scrMenuMgr->addMenuItem(scrActions["tableDistributeRowsEvenly"], "ItemTable", false);
+	scrMenuMgr->addMenuItem(scrActions["tableDistributeColumnsEvenly"], "ItemTable", false);
+	scrMenuMgr->addMenuSeparator("ItemTable");
+	scrMenuMgr->addMenuItem(scrActions["tableAdjustFrameToTable"], "ItemTable", false);
+	scrMenuMgr->addMenuItem(scrActions["tableAdjustTableToFrame"], "ItemTable", false);
+	scrMenuMgr->addMenuSeparator("Item");
+	// End Table submenu.
 	scrMenuMgr->addMenuSeparator("Item");
 	scrMenuMgr->addMenuItem(scrActions["itemAdjustFrameToImage"], "Item", false);
 	scrMenuMgr->addMenuItem(scrActions["itemAdjustImageToFrame"], "Item", false);
@@ -822,6 +848,7 @@
 	scrMenuMgr->addMenuItem(scrActions["toolsInsertImageFrame"], "Insert", false);
 	scrMenuMgr->addMenuItem(scrActions["toolsInsertRenderFrame"], "Insert", false);
 	scrMenuMgr->addMenuItem(scrActions["toolsInsertTableFrame"], "Insert", false);
+	scrMenuMgr->addMenuItem(scrActions["toolsInsertTable"], "Insert", false);
 	scrMenuMgr->addMenuItem(scrActions["toolsInsertShape"], "Insert", false);
 	scrMenuMgr->addMenuItem(scrActions["toolsInsertPolygon"], "Insert", false);
 	scrMenuMgr->addMenuItem(scrActions["toolsInsertArc"], "Insert", false);
@@ -2483,6 +2510,7 @@
 	scrActions["toolsInsertTextFrame"]->setEnabled(true);
 	scrActions["toolsInsertImageFrame"]->setEnabled(true);
 	scrActions["toolsInsertTableFrame"]->setEnabled(true);
+	scrActions["toolsInsertTable"]->setEnabled(true);
 	scrActions["toolsInsertShape"]->setEnabled(true);
 	scrActions["toolsInsertLine"]->setEnabled(true);
 	scrActions["toolsInsertBezier"]->setEnabled(true);
@@ -3175,6 +3203,7 @@
 				pluginAction->setEnabled(ixplug->handleSelection(doc, SelectedType));
 		}
 	}
+	updateTableMenuActions();
 }
 
 void ScribusMainWindow::slotDocCh(bool /*reb*/)
@@ -4681,6 +4710,9 @@
 		else
 			QDir::setCurrent( QDir::homePath() );
 	}
+
+	updateTableMenuActions();
+
 	return true;
 }
 
@@ -6137,6 +6169,7 @@
 		scrActions["toolsInsertTextFrame"]->setEnabled(false);
 		scrActions["toolsInsertImageFrame"]->setEnabled(false);
 		scrActions["toolsInsertTableFrame"]->setEnabled(false);
+		scrActions["toolsInsertTable"]->setEnabled(false);
 		scrActions["toolsInsertShape"]->setEnabled(false);
 		scrActions["toolsInsertLine"]->setEnabled(false);
 		scrActions["toolsInsertBezier"]->setEnabled(false);
@@ -6220,6 +6253,7 @@
 	scrActions["toolsInsertTextFrame"]->setEnabled(true);
 	scrActions["toolsInsertImageFrame"]->setEnabled(true);
 	scrActions["toolsInsertTableFrame"]->setEnabled(true);
+	scrActions["toolsInsertTable"]->setEnabled(true);
 	scrActions["toolsInsertShape"]->setEnabled(true);
 	scrActions["toolsInsertLine"]->setEnabled(true);
 	scrActions["toolsInsertBezier"]->setEnabled(true);
@@ -6315,6 +6349,7 @@
 	scrActions["toolsInsertTextFrame"]->setChecked(mode==modeDrawText);
 	scrActions["toolsInsertImageFrame"]->setChecked(mode==modeDrawImage);
 	scrActions["toolsInsertTableFrame"]->setChecked(mode==modeDrawTable);
+	scrActions["toolsInsertTable"]->setChecked(mode==modeDrawTable2);
 	scrActions["toolsInsertShape"]->setChecked(mode==modeDrawShapes);
 	scrActions["toolsInsertPolygon"]->setChecked(mode==modeDrawRegularPolygon);
 	scrActions["toolsInsertArc"]->setChecked(mode==modeDrawArc);
@@ -6364,11 +6399,20 @@
 			delete doc->CurTimer;
 			doc->CurTimer = NULL;
 		} */
+
+		// Restore/save action shortcuts when entering/leaving edit mode.
 		if (mode!=modeEdit && oldMode==modeEdit)
 			actionManager->restoreActionShortcutsPostEditMode();
 		else
 		if (mode==modeEdit && oldMode!=modeEdit)
 			actionManager->saveActionShortcutsPreEditMode();
+
+		// Restore/save action shortcuts when entering/leaving table edit mode.
+		if (mode != modeEditTable && oldMode == modeEditTable)
+			actionManager->restoreActionShortcutsPostEditMode();
+		else if (mode == modeEditTable && oldMode != modeEditTable)
+			actionManager->saveActionShortcutsPreEditMode();
+
 		if (oldMode == modeEdit)
 		{
 			view->zoomSpinBox->setFocusPolicy(Qt::ClickFocus);
@@ -6504,6 +6548,11 @@
 				qApp->changeOverrideCursor(QCursor(loadIcon("DrawTextFrame.xpm")));
 				break;
 			case modeDrawTable:
+				if (docSelectionCount!=0)
+					view->Deselect(true);
+				qApp->changeOverrideCursor(QCursor(loadIcon("DrawTable.xpm")));
+				break;
+			case modeDrawTable2:
 				if (docSelectionCount!=0)
 					view->Deselect(true);
 				qApp->changeOverrideCursor(QCursor(loadIcon("DrawTable.xpm")));
@@ -9196,6 +9245,7 @@
 	scrActions["toolsInsertTextFrame"]->setEnabled(setter);
 	scrActions["toolsInsertImageFrame"]->setEnabled(setter);
 	scrActions["toolsInsertTableFrame"]->setEnabled(setter);
+	scrActions["toolsInsertTable"]->setEnabled(setter);
 	scrActions["toolsInsertShape"]->setEnabled(setter);
 	scrActions["toolsInsertLine"]->setEnabled(setter);
 	scrActions["toolsInsertBezier"]->setEnabled(setter);
@@ -10151,3 +10201,34 @@
 	scrMenuMgr->setMenuEnabled("InsertSpace", enabled);
 	scrMenuMgr->setMenuEnabled("InsertLigature", enabled);
 }
+
+void ScribusMainWindow::updateTableMenuActions()
+{
+	// Determine state.
+	PageItem* item = doc ? doc->m_Selection->itemAt(0) : 0;
+	PageItem_Table* table = (item && item->isTable()) ? item->asTable() : 0;
+	const bool tableEdited = table && doc->appMode == modeEditTable;
+	const int tableRows = table ? table->rows() : 0;
+	const int tableColumns = table ? table->columns() : 0;
+	const int selectedRows = tableEdited ? table->selectedRows().size() : 0;
+	const int selectedColumns = tableEdited ? table->selectedColumns().size() : 0;
+	const int selectedCells = tableEdited ? table->selectedCells().size() : 0;
+
+	// Enable/disable menu actions.
+	scrMenuMgr->setMenuEnabled("ItemTable", table);
+	scrActions["tableInsertRows"]->setEnabled(table || (tableEdited && selectedCells < 1));
+	scrActions["tableInsertColumns"]->setEnabled(table || (tableEdited && selectedCells < 1));
+	scrActions["tableDeleteRows"]->setEnabled(tableEdited &&
+		((selectedRows < 1 && tableRows > 1) || (selectedRows > 0 && selectedRows < tableRows)));
+	scrActions["tableDeleteColumns"]->setEnabled(tableEdited &&
+		((selectedColumns < 1 && tableColumns > 1) || (selectedColumns > 0 && selectedColumns < tableColumns)));
+	scrActions["tableMergeCells"]->setEnabled(selectedCells > 1);
+	scrActions["tableSplitCells"]->setEnabled(false); // Not implemented.
+	scrActions["tableSetRowHeights"]->setEnabled(tableEdited);
+	scrActions["tableSetColumnWidths"]->setEnabled(tableEdited);
+	scrActions["tableDistributeRowsEvenly"]->setEnabled(selectedRows > 1);
+	scrActions["tableDistributeColumnsEvenly"]->setEnabled(selectedColumns > 1);
+	scrActions["tableAdjustFrameToTable"]->setEnabled(table);
+	scrActions["tableAdjustTableToFrame"]->setEnabled(table);
+}
+

Modified: branches/ScribusOIF/scribus/scribus.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/scribus.h
==============================================================================
--- branches/ScribusOIF/scribus/scribus.h (original)
+++ branches/ScribusOIF/scribus/scribus.h Sat Oct  8 18:21:50 2011
@@ -562,6 +562,14 @@
 	//! \brief allow SE to get the SM for edit stlyes
 	StyleManager *styleMgr() const {return styleManager;};
 
+	/**
+	 * Enables/disables the actions in the "Table" menu.
+	 *
+	 * This has a functions of its own, since it needs to be called from the table edit
+	 * canvas modes/gestures.
+	 */
+	void updateTableMenuActions();
+
 signals:
 	void TextStyle(const ParagraphStyle&);
 //deprecated: (av)

Modified: branches/ScribusOIF/scribus/scribusdoc.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/scribusdoc.cpp
==============================================================================
--- branches/ScribusOIF/scribus/scribusdoc.cpp (original)
+++ branches/ScribusOIF/scribus/scribusdoc.cpp Sat Oct  8 18:21:50 2011
@@ -26,13 +26,16 @@
 #include <sstream>
 
 #include <QByteArray>
- #include <QDebug>
+#include <QDebug>
+#include <QDialog>
 #include <QEventLoop>
 #include <QFile>
 #include <QList>
+#include <QtAlgorithms>
 #include <QTime>
 #include <QPainter>
 #include <QPixmap>
+#include <QPointer>
 #include <QProgressBar>
 
 #include "canvas.h"
@@ -42,8 +45,11 @@
 //#include "desaxe/saxXML.h"
 #include "fileloader.h"
 #include "filewatcher.h"
+#include "fpoint.h"
 #include "ui/guidemanager.h"
 #include "hyphenator.h"
+#include "ui/inserttablecolumnsdialog.h"
+#include "ui/inserttablerowsdialog.h"
 #include "pageitem.h"
 #include "pageitem_imageframe.h"
 #include "pageitem_latexframe.h"
@@ -51,6 +57,7 @@
 #include "pageitem_pathtext.h"
 #include "pageitem_polygon.h"
 #include "pageitem_polyline.h"
+#include "pageitem_table.h"
 #include "pageitem_textframe.h"
 #ifdef HAVE_OSG
 	#include "pageitem_osgframe.h"
@@ -80,6 +87,9 @@
 #include "scribuswin.h"
 #include "selection.h"
 #include "serializer.h"
+#include "tableborder.h"
+#include "ui/tablecolumnwidthsdialog.h"
+#include "ui/tablerowheightsdialog.h"
 #include "text/nlsconfig.h"
 #include "undomanager.h"
 #include "units.h"
@@ -212,6 +222,8 @@
 	DragElements(),
 	docParagraphStyles(),
 	docCharStyles(),
+	docTableStyles(),
+	docCellStyles(),
 	Layers(),
 	GroupCounter(1),
 	colorEngine(ScCore->defaultEngine),
@@ -301,6 +313,8 @@
 	DragElements(),
 	docParagraphStyles(),
 	docCharStyles(),
+	docTableStyles(),
+	docCellStyles(),
 	Layers(),
 	GroupCounter(1),
 	colorEngine(ScCore->defaultEngine),
@@ -466,6 +480,34 @@
 //	docParagraphStyles[0].charStyle().setName( "cdocdefault" ); // DONT TRANSLATE
 
 	currentStyle = pstyle;
+
+	// Create default table style.
+	// TODO: We should have preferences for the default values.
+	TableStyle defaultTableStyle;
+	defaultTableStyle.setName(CommonStrings::DefaultTableStyle);
+	defaultTableStyle.setFillColor(CommonStrings::None);
+	defaultTableStyle.setLeftBorder(TableBorder(1.0, Qt::SolidLine, "Black"));
+	defaultTableStyle.setRightBorder(TableBorder(1.0, Qt::SolidLine, "Black"));
+	defaultTableStyle.setTopBorder(TableBorder(1.0, Qt::SolidLine, "Black"));
+	defaultTableStyle.setBottomBorder(TableBorder(1.0, Qt::SolidLine, "Black"));
+	docTableStyles.create(defaultTableStyle);
+	docTableStyles.makeDefault(&(docTableStyles[0]));
+
+	// Create default table cell style.
+	// TODO: We should have preferences for the default values.
+	CellStyle defaultCellStyle;
+	defaultCellStyle.setName(CommonStrings::DefaultCellStyle);
+	defaultCellStyle.setFillColor(CommonStrings::None);
+	defaultCellStyle.setLeftBorder(TableBorder(1.0, Qt::SolidLine, "Black"));
+	defaultCellStyle.setRightBorder(TableBorder(1.0, Qt::SolidLine, "Black"));
+	defaultCellStyle.setTopBorder(TableBorder(1.0, Qt::SolidLine, "Black"));
+	defaultCellStyle.setBottomBorder(TableBorder(1.0, Qt::SolidLine, "Black"));
+	defaultCellStyle.setLeftPadding(1.0);
+	defaultCellStyle.setRightPadding(1.0);
+	defaultCellStyle.setTopPadding(1.0);
+	defaultCellStyle.setBottomPadding(1.0);
+	docCellStyles.create(defaultCellStyle);
+	docCellStyles.makeDefault(&(docCellStyles[0]));
 	
 	Layers.addLayer( tr("Background") );
 	// FIXME: Check PDF version input
@@ -985,6 +1027,10 @@
 		docParagraphStyles[i].getNamedResources(lists);
 	for (int i = 0; i < docCharStyles.count(); ++i)
 		docCharStyles[i].getNamedResources(lists);
+	for (int i = 0; i < docTableStyles.count(); ++i)
+		docTableStyles[i].getNamedResources(lists);
+	for (int i = 0; i < docCellStyles.count(); ++i)
+		docCellStyles[i].getNamedResources(lists);
 //	for (uint i = 0; i < docLineStyles.count(); ++i)
 //		docLineStyles[i].getNamedResources(lists);
 	
@@ -1125,6 +1171,20 @@
 		else
 			docCharStyles[i].replaceNamedResources(newNames);
 	}
+	for (int i = docTableStyles.count() - 1; i >= 0; --i)
+	{
+		if (newNames.tableStyles().contains(docTableStyles[i].name()))
+			docTableStyles.remove(i);
+		else
+			docTableStyles[i].replaceNamedResources(newNames);
+	}
+	for (int i = docCellStyles.count() - 1; i >= 0; --i)
+	{
+		if (newNames.cellStyles().contains(docCellStyles[i].name()))
+			docCellStyles.remove(i);
+		else
+			docCellStyles[i].replaceNamedResources(newNames);
+	}
 
 	QMap<QString,ScPattern>::Iterator it;
 	for (it = docPatterns.begin(); it != docPatterns.end(); ++it)
@@ -1165,17 +1225,24 @@
 	if (newNames.colors().count() > 0 || newNames.fonts().count() > 0)
 	{
 		docCharStyles.invalidate();
-		docParagraphStyles.invalidate();	
+		docParagraphStyles.invalidate();
+		docTableStyles.invalidate();
+		docCellStyles.invalidate();
 	}
 	else
 	{
 		if (newNames.charStyles().count() > 0)
 			docCharStyles.invalidate();
 		if (newNames.styles().count() > 0)
-			docParagraphStyles.invalidate();	
+			docParagraphStyles.invalidate();
+		if (newNames.tableStyles().count() > 0)
+			docTableStyles.invalidate();
+		if (newNames.cellStyles().count() > 0)
+			docCellStyles.invalidate();
 	}
 	if (!isLoading() && !(newNames.colors().isEmpty() && newNames.fonts().isEmpty() && newNames.patterns().isEmpty() 
-						  && newNames.styles().isEmpty() && newNames.charStyles().isEmpty() && newNames.lineStyles().isEmpty()) )
+			&& newNames.styles().isEmpty() && newNames.charStyles().isEmpty() && newNames.lineStyles().isEmpty()
+			&& newNames.tableStyles().isEmpty() && newNames.cellStyles().isEmpty()))
 		changed();
 }
 
@@ -1225,6 +1292,19 @@
 	*/
 }
 
+void ScribusDoc::replaceTableStyles(const QMap<QString, QString>& newNameForOld)
+{
+	ResourceCollection newNames;
+	newNames.mapTableStyles(newNameForOld);
+	replaceNamedResources(newNames);
+}
+
+void ScribusDoc::replaceCellStyles(const QMap<QString, QString>& newNameForOld)
+{
+	ResourceCollection newNames;
+	newNames.mapCellStyles(newNameForOld);
+	replaceNamedResources(newNames);
+}
 
 void ScribusDoc::redefineStyles(const StyleSet<ParagraphStyle>& newStyles, bool removeUnused)
 {
@@ -1280,6 +1360,47 @@
 	docCharStyles.invalidate();
 }
 
+void ScribusDoc::redefineTableStyles(const StyleSet<TableStyle>& newStyles, bool removeUnused)
+{
+	docTableStyles.redefine(newStyles, false);
+	if (removeUnused)
+	{
+		QMap<QString, QString> deletion;
+		QString deflt("");
+		for (int i = 0; i < docTableStyles.count(); ++i)
+		{
+			const QString& nam(docTableStyles[i].name());
+			if (newStyles.find(nam) < 0)
+			{
+				deletion[nam] = deflt;
+			}
+		}
+		if (deletion.count() > 0)
+			replaceTableStyles(deletion);
+	}
+	docTableStyles.invalidate();
+}
+
+void ScribusDoc::redefineCellStyles(const StyleSet<CellStyle>& newStyles, bool removeUnused)
+{
+	docCellStyles.redefine(newStyles, false);
+	if (removeUnused)
+	{
+		QMap<QString, QString> deletion;
+		QString deflt("");
+		for (int i = 0; i < docCellStyles.count(); ++i)
+		{
+			const QString& nam(docCellStyles[i].name());
+			if (newStyles.find(nam) < 0)
+			{
+				deletion[nam] = deflt;
+			}
+		}
+		if (deletion.count() > 0)
+			replaceCellStyles(deletion);
+	}
+	docCellStyles.invalidate();
+}
 
 /*
  * Split out from loadStyles in editFormats.cpp so it's callable from anywhere,
@@ -4202,6 +4323,10 @@
 				Q_ASSERT(frameType==PageItem::Unspecified);
 			}
 			break;
+		case PageItem::Table:
+			newItem = new PageItem_Table(this, x, y, b, h, w, fill, outline);
+			Q_ASSERT(frameType==PageItem::Rectangle || frameType==PageItem::Unspecified);
+			break;
 		case PageItem::Polygon:
 			newItem = new PageItem_Polygon(this, x, y, b, h, w, fill, outline);
 			Q_ASSERT(frameType==PageItem::Rectangle || frameType==PageItem::Ellipse || frameType==PageItem::Unspecified);
@@ -4485,7 +4610,7 @@
 			break;
 	}
 
-	if (frameType==PageItem::Rectangle || itemType==PageItem::TextFrame || itemType==PageItem::ImageFrame || itemType==PageItem::LatexFrame || itemType==PageItem::OSGFrame || itemType==PageItem::Symbol || itemType==PageItem::Group)
+	if (frameType==PageItem::Rectangle || itemType==PageItem::TextFrame || itemType==PageItem::ImageFrame || itemType==PageItem::LatexFrame || itemType==PageItem::OSGFrame || itemType==PageItem::Symbol || itemType==PageItem::Group || itemType==PageItem::Table)
 	{
 		newItem->SetRectFrame();
 		//TODO one day hopefully, if(ScCore->usingGUI())
@@ -6867,6 +6992,395 @@
 	}
 }
 
+void ScribusDoc::itemSelection_InsertTableRows()
+{
+	PageItem* item = m_Selection->itemAt(0);
+	if (!item || !item->isTable())
+		return;
+
+	PageItem_Table* table = item->asTable();
+	if (!table)
+		return;
+
+	QPointer<InsertTableRowsDialog> dialog = new InsertTableRowsDialog(appMode, m_ScMW);
+	if (dialog->exec() == QDialog::Accepted)
+	{
+		/*
+		 * In table edit mode we insert either before or after the active
+		 * cell, otherwise we insert at beginning or end of table.
+		 */
+		int index = 0;
+		const TableCell cell = table->activeCell();
+		if (dialog->position() == InsertTableRowsDialog::Before)
+			index = appMode == modeEditTable ? cell.row() : 0;
+		else
+			index = appMode == modeEditTable ? cell.row() + cell.rowSpan() : table->rows();
+
+		// Insert the rows.
+		table->insertRows(index, dialog->numberOfRows());
+		table->clearSelection();
+		table->update();
+
+		m_ScMW->updateTableMenuActions();
+		changed();
+	}
+
+	delete dialog;
+}
+
+void ScribusDoc::itemSelection_InsertTableColumns()
+{
+	PageItem* item = m_Selection->itemAt(0);
+	if (!item || !item->isTable())
+		return;
+
+	PageItem_Table* table = item->asTable();
+	if (!table)
+		return;
+
+	QPointer<InsertTableColumnsDialog> dialog = new InsertTableColumnsDialog(appMode, m_ScMW);
+	if (dialog->exec() == QDialog::Accepted)
+	{
+		/*
+		 * In table edit mode we insert either before or after the active
+		 * cell, otherwise we insert at beginning or end of table.
+		 */
+		int index = 0;
+		const TableCell cell = table->activeCell();
+		if (dialog->position() == InsertTableColumnsDialog::Before)
+			index = appMode == modeEditTable ? cell.column() : 0;
+		else
+			index = appMode == modeEditTable ? cell.column() + cell.columnSpan() : table->columns();
+
+		// Insert the columns.
+		table->insertColumns(index, dialog->numberOfColumns());
+		table->clearSelection();
+		table->update();
+
+		m_ScMW->updateTableMenuActions();
+		changed();
+	}
+
+	delete dialog;
+}
+
+void ScribusDoc::itemSelection_DeleteTableRows()
+{
+	PageItem* item = m_Selection->itemAt(0);
+	if (!item || !item->isTable())
+		return;
+
+	PageItem_Table* table = item->asTable();
+	if (!table)
+		return;
+
+	if (appMode != modeEditTable)
+		return;
+
+	if (table->selectedRows().size() >= table->rows())
+		return;
+
+	if (table->selectedRows().isEmpty())
+	{
+		// Remove rows spanned by active cell.
+	TableCell activeCell = table->activeCell();
+		table->removeRows(activeCell.row(), activeCell.rowSpan());
+	}
+	else
+	{
+		// Remove selected row(s).
+		QList<int> selectedRows = table->selectedRows().toList();
+		qSort(selectedRows.begin(), selectedRows.end(), qGreater<int>());
+
+		int index = 0;
+		int numRows = 1;
+		for (int i = 0; i < selectedRows.size() - 1; ++i)
+		{
+			index = selectedRows[i];
+			if (selectedRows[i] - 1 == selectedRows[i + 1])
+			{
+				index = selectedRows[i + 1];
+				numRows++;
+			}
+			else
+			{
+				table->removeRows(index, numRows);
+				numRows = 1;
+			}
+		}
+		table->removeRows(index, numRows);
+	}
+
+	m_View->stopGesture(); // FIXME: Don't use m_View.
+	table->update();
+
+	m_ScMW->updateTableMenuActions();
+	changed();
+}
+
+void ScribusDoc::itemSelection_DeleteTableColumns()
+{
+	PageItem* item = m_Selection->itemAt(0);
+	if (!item || !item->isTable())
+		return;
+
+	PageItem_Table* table = item->asTable();
+	if (!table)
+		return;
+
+	if (appMode != modeEditTable)
+		return;
+
+	if (table->selectedColumns().size() >= table->columns())
+		return;
+
+	if (table->selectedColumns().isEmpty())
+	{
+		// Remove columns spanned by active cell.
+		TableCell activeCell = table->activeCell();
+		table->removeColumns(activeCell.column(), activeCell.columnSpan());
+	}
+	else
+	{
+		// Remove selected column(s).
+		QList<int> selectedColumns = table->selectedColumns().toList();
+		qSort(selectedColumns.begin(), selectedColumns.end(), qGreater<int>());
+
+		int index = 0;
+		int numColumns = 1;
+		for (int i = 0; i < selectedColumns.size() - 1; ++i)
+		{
+			index = selectedColumns[i];
+			if (selectedColumns[i] - 1 == selectedColumns[i + 1])
+			{
+				index = selectedColumns[i + 1];
+				numColumns++;
+			}
+			else
+			{
+				table->removeColumns(index, numColumns);
+				numColumns = 1;
+			}
+		}
+		table->removeColumns(index, numColumns);
+	}
+
+	m_View->stopGesture(); // FIXME: Don't use m_View.
+	table->update();
+
+	m_ScMW->updateTableMenuActions();
+	changed();
+}
+
+void ScribusDoc::itemSelection_MergeTableCells()
+{
+	PageItem* item = m_Selection->itemAt(0);
+	if (!item || !item->isTable())
+		return;
+
+	PageItem_Table* table = item->asTable();
+	if (!table)
+		return;
+
+	if (appMode != modeEditTable)
+		return;
+
+	if (table->selectedCells().size() < 2)
+		return;
+
+	QList<int> selectedRows = table->selectedRows().toList();
+	QList<int> selectedColumns = table->selectedColumns().toList();
+	qSort(selectedRows);
+	qSort(selectedColumns);
+
+	const int row = selectedRows.first();
+	const int column = selectedColumns.first();
+	const int numRows = selectedRows.last() - row + 1;
+	const int numColumns = selectedColumns.last() - column + 1;
+
+	table->mergeCells(row, column, numRows, numColumns);
+
+	m_View->stopGesture(); // FIXME: Don't use m_View.
+	table->update();
+
+	m_ScMW->updateTableMenuActions();
+	changed();
+}
+
+void ScribusDoc::itemSelection_SetTableRowHeights()
+{
+	PageItem* item = m_Selection->itemAt(0);
+	if (!item || !item->isTable())
+		return;
+
+	PageItem_Table* table = item->asTable();
+	if (!table)
+		return;
+
+	QPointer<TableRowHeightsDialog> dialog = new TableRowHeightsDialog(this, m_ScMW);
+	if (dialog->exec() == QDialog::Rejected)
+		return;
+
+	const qreal rowHeight = dialog->rowHeight();
+	if (appMode == modeEditTable)
+	{
+		if (table->selectedCells().isEmpty())
+		{
+			// Set height of rows spanned by active cell.
+			TableCell activeCell = table->activeCell();
+			int startRow = activeCell.row();
+			int endRow = startRow + activeCell.rowSpan() - 1;
+			for (int row = startRow; row <= endRow; ++row)
+				table->resizeRow(row, rowHeight / unitRatio());
+		}
+		else
+		{
+			// Set height of selected rows.
+			foreach (const int row, table->selectedRows())
+				table->resizeRow(row, rowHeight / unitRatio());
+		}
+	}
+	else
+	{
+		// Set height of all rows in table.
+		for (int row = 0; row < table->rows(); ++row)
+			table->resizeRow(row, rowHeight / unitRatio());
+	}
+
+	delete dialog;
+
+	table->update();
+	changed();
+}
+
+void ScribusDoc::itemSelection_SetTableColumnWidths()
+{
+	PageItem* item = m_Selection->itemAt(0);
+	if (!item || !item->isTable())
+		return;
+
+	PageItem_Table* table = item->asTable();
+	if (!table)
+		return;
+
+	QPointer<TableColumnWidthsDialog> dialog = new TableColumnWidthsDialog(this, m_ScMW);
+	if (dialog->exec() == QDialog::Rejected)
+		return;
+
+	const qreal columnWidth = dialog->columnWidth();
+	if (appMode == modeEditTable)
+	{
+		if (table->selectedCells().isEmpty())
+		{
+			// Set width of columns spanned by active cell.
+			TableCell activeCell = table->activeCell();
+			int startColumn = activeCell.column();
+			int endColumn = startColumn + activeCell.columnSpan() - 1;
+			for (int column = startColumn; column <= endColumn; ++column)
+				table->resizeColumn(column, columnWidth / unitRatio());
+		}
+		else
+		{
+			// Set width of selected columns.
+			foreach (const int column, table->selectedColumns())
+				table->resizeColumn(column, columnWidth / unitRatio());
+		}
+	}
+	else
+	{
+		// Set width of all columns in table.
+		for (int column = 0; column < table->columns(); ++column)
+			table->resizeColumn(column, columnWidth / unitRatio());
+	}
+
+	delete dialog;
+
+	table->update();
+	changed();
+}
+
+void ScribusDoc::itemSelection_DistributeTableRowsEvenly()
+{
+	PageItem* item = m_Selection->itemAt(0);
+	if (!item || !item->isTable())
+		return;
+
+	PageItem_Table* table = item->asTable();
+	if (!table)
+		return;
+
+	if (appMode == modeEditTable && !table->selectedRows().isEmpty())
+	{
+		// Distribute each contigous range of selected rows.
+		QList<int> selectedRows = table->selectedRows().toList();
+		qSort(selectedRows);
+		int startRow = selectedRows.first();
+		int endRow = startRow;
+		for (int i = 0; i < selectedRows.size() - 1; ++i)
+		{
+			if (selectedRows[i + 1] == endRow + 1)
+				endRow++; // Extend range.
+			else
+			{
+				table->distributeRows(startRow, endRow);
+				// Move range.
+				startRow = selectedRows[i + 1];
+				endRow = startRow;
+			}
+		}
+		table->distributeRows(startRow, endRow);
+	}
+	else
+	{
+		// Distribute all rows in the table.
+		table->distributeRows(0, table->rows() - 1);
+	}
+
+	table->update();
+	changed();
+}
+
+void ScribusDoc::itemSelection_DistributeTableColumnsEvenly()
+{
+	PageItem* item = m_Selection->itemAt(0);
+	if (!item || !item->isTable())
+		return;
+
+	PageItem_Table* table = item->asTable();
+	if (!table)
+		return;
+
+	if (appMode == modeEditTable && !table->selectedColumns().isEmpty())
+	{
+		// Distribute each contigous range of selected columns.
+		QList<int> selectedColumns = table->selectedColumns().toList();
+		qSort(selectedColumns);
+		int startColumn = selectedColumns.first();
+		int endColumn = startColumn;
+		for (int i = 0; i < selectedColumns.size() - 1; ++i)
+		{
+			if (selectedColumns[i + 1] == endColumn + 1)
+				endColumn++; // Extend range.
+			else
+			{
+				table->distributeColumns(startColumn, endColumn);
+				// Move range.
+				startColumn = selectedColumns[i + 1];
+				endColumn = startColumn;
+			}
+		}
+		table->distributeColumns(startColumn, endColumn);
+	}
+	else
+	{
+		// Distribute all columns in the table.
+		table->distributeColumns(0, table->columns() - 1);
+	}
+
+	table->update();
+	changed();
+}
+
 void ScribusDoc::itemSelection_SetEffects(int s, Selection* customSelection)
 {
 	CharStyle newStyle;
@@ -11552,6 +12066,16 @@
 	return ret;
 }
 
+bool ScribusDoc::ApplyGuides(FPoint* point)
+{
+	double newX = point->x();
+	double newY = point->y();
+	bool ret = ApplyGuides(&newX, &newY);
+	point->setX(newX);
+	point->setY(newY);
+
+	return ret;
+}
 
 bool ScribusDoc::MoveItem(double newX, double newY, PageItem* currItem, bool fromMP)
 {
@@ -12839,7 +13363,43 @@
 	}
 }
 
-
+void ScribusDoc::itemSelection_AdjustFrameToTable()
+{
+	// TODO: Do this in an undo transaction?
+	int selectedItemCount = m_Selection->count();
+
+	if (selectedItemCount < 1)
+		return;
+
+	for (int i = 0; i < selectedItemCount; ++i)
+	{
+		PageItem *item = m_Selection->itemAt(i);
+		if (item && item->isTable())
+			item->asTable()->adjustFrameToTable();
+	}
+
+	regionsChanged()->update(QRectF());
+	changed();
+}
+
+void ScribusDoc::itemSelection_AdjustTableToFrame()
+{
+	// TODO: Do this in an undo transaction?
+	int selectedItemCount = m_Selection->count();
+
+	if (selectedItemCount < 1)
+		return;
+
+	for (int i = 0; i < selectedItemCount; ++i)
+	{
+		PageItem *item = m_Selection->itemAt(i);
+		if (item && item->isTable())
+			item->asTable()->adjustTableToFrame();
+	}
+
+	regionsChanged()->update(QRectF());
+	changed();
+}
 
 NodeEditContext::NodeEditContext() 
 : submode(MOVE_POINT), isContourLine(false), oldClip(NULL), nodeTransaction(NULL),

Modified: branches/ScribusOIF/scribus/scribusdoc.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/scribusdoc.h
==============================================================================
--- branches/ScribusOIF/scribus/scribusdoc.h (original)
+++ branches/ScribusOIF/scribus/scribusdoc.h Sat Oct  8 18:21:50 2011
@@ -48,6 +48,8 @@
 #include "scpage.h"
 #include "sclayer.h"
 #include "styles/styleset.h"
+#include "styles/tablestyle.h"
+#include "styles/cellstyle.h"
 #include "undoobject.h"
 #include "undostate.h"
 #include "updatemanager.h"
@@ -57,6 +59,7 @@
 #include FT_FREETYPE_H
 
 class DocUpdater;
+class FPoint;
 class UndoManager;
 // class UndoState;
 class PDFOptions;
@@ -519,6 +522,56 @@
 	bool isDefaultStyle( const CharStyle& c ) const { return docCharStyles.isDefault(c); }
 // 	bool isDefaultStyle( LineStyle& l ) const { return MLineStyles......; }
 
+	/**
+	 * Returns the table style named @a name.
+	 */
+	const TableStyle& tableStyle(QString name) { return docTableStyles.get(name); }
+	/**
+	 * Returns the set of table styles in the document.
+	 */
+	const StyleSet<TableStyle>& tableStyles()   { return docTableStyles; }
+	/**
+	 * Returns <code>true</code> if @a style is the default table style.
+	 */
+	bool isDefaultStyle(const TableStyle& style) const { return docTableStyles.isDefault(style); }
+	/**
+	 * Redefines the set of table styles in the document using styles in @a newStyles.
+	 * Removes unused table styles if @a removeUnused is <code>true</code>.
+	 */
+	void redefineTableStyles(const StyleSet<TableStyle>& newStyles, bool removeUnused = false);
+	/**
+	 * Remove any reference to old table styles and replace with new name.
+	 * This needs to be called when a style was removed. New name may be "".
+	 * @a newNameForOld is a map which maps the name of any style to remove
+	 * to a new table style name
+	 */
+	void replaceTableStyles(const QMap<QString, QString>& newNameForOld);
+
+	/**
+	 * Returns the table cell style named @a name.
+	 */
+	const CellStyle& cellStyle(QString name) { return docCellStyles.get(name); }
+	/**
+	 * Returns the set of table cell styles in the document.
+	 */
+	const StyleSet<CellStyle>& cellStyles()   { return docCellStyles; }
+	/**
+	 * Returns <code>true</code> if @a style is the default table cell style.
+	 */
+	bool isDefaultStyle(const CellStyle& style) const { return docCellStyles.isDefault(style); }
+	/**
+	 * Redefines the set of table cell styles in the document using styles in @a newStyles.
+	 * Removes unused table cell styles if @a removeUnused is <code>true</code>.
+	 */
+	void redefineCellStyles(const StyleSet<CellStyle>& newStyles, bool removeUnused = false);
+	/**
+	 * Remove any reference to old table cell styles and replace with new name.
+	 * This needs to be called when a style was removed. New name may be "".
+	 * @a newNameForOld is a map which maps the name of any style to remove
+	 * to a new table cell style name
+	 */
+	void replaceCellStyles(const QMap<QString, QString>& newNameForOld);
+
 	void getNamedResources(ResourceCollection& lists) const;
 	void replaceNamedResources(ResourceCollection& newNames);
 	bool styleExists(QString styleName);
@@ -1010,6 +1063,7 @@
 	//! \brief Snap an item to the guides
 	void SnapToGuides(PageItem *currItem);
 	bool ApplyGuides(double *x, double *y);
+	bool ApplyGuides(FPoint* point);
 	bool MoveItem(double newX, double newY, PageItem* ite, bool fromMP = false);
 	void RotateItem(double win, int ite);
 	void RotateItem(double win, PageItem *currItem);
@@ -1129,6 +1183,8 @@
 private:
 	StyleSet<ParagraphStyle> docParagraphStyles;
 	StyleSet<CharStyle> docCharStyles;
+	StyleSet<TableStyle> docTableStyles;
+	StyleSet<CellStyle> docCellStyles;
 public:
 	ScLayers Layers;
 	//bool marginColored;
@@ -1341,6 +1397,129 @@
 	void itemSelection_SetItemPatternMask(QString pattern);
 	void itemSelection_SetItemPatternMaskProps(double scaleX, double scaleY, double offsetX, double offsetY, double rotation, double skewX, double skewY, bool mirrorX, bool mirrorY);
 
+	// Table related slots.
+
+	/**
+	 * Inserts rows in a table.
+	 *
+	 * The user will be prompted by a dialog for the number of rows and where they should
+	 * be inserted. If in table edit mode, rows may be inserted before or after the active
+	 * cell. If in normal mode, rows may be inserted at the beginning or end of the selected
+	 * table.
+	 *
+	 * If no table is selected, then this slot does nothing.
+	 */
+	void itemSelection_InsertTableRows();
+
+	/**
+	 * Inserts columns in a table.
+	 *
+	 * The user will be prompted by a dialog for the number of columns and where they should
+	 * be inserted. If in table edit mode, columns may be inserted before or after the active
+	 * cell. If in normal mode, columns may be inserted at the beginning or end of the selected
+	 * table.
+	 *
+	 * If no table is selected, then this slot does nothing.
+	 */
+	void itemSelection_InsertTableColumns();
+
+	/**
+	 * Deletes rows in a table.
+	 *
+	 * If the there is a cell selection, all rows spanned by the selection will be deleted.
+	 * If there is no cell selection, the rows spanned by the active cell will be deleted.
+	 *
+	 * If no table is selected, or if the application is not in table edit mode, then this slot
+	 * does nothing.
+	 */
+	void itemSelection_DeleteTableRows();
+
+	/**
+	 * Deletes columns in a table.
+	 *
+	 * If the there is a cell selection, all columns spanned by the selection will be deleted.
+	 * If there is no cell selection, the columns spanned by the active cell will be deleted.
+	 *
+	 * If no table is selected, or if the application is not in table edit mode, then this slot
+	 * does nothing.
+	 */
+	void itemSelection_DeleteTableColumns();
+
+	/**
+	 * Merges the selected cells in a table.
+	 *
+	 * The merged area will span from the top left to the bottom right of the selected cells.
+	 *
+	 * If no table is selected, or if the application is not in table edit mode, or if less
+	 * than two cells is selected, then this slot does nothing.
+	 */
+	void itemSelection_MergeTableCells();
+
+	/**
+	 * Splits cells in a table.
+	 *
+	 * TODO: Implement this.
+	 */
+	void itemSelection_SplitTableCells() {}
+
+	/**
+	 * Sets the height of rows in a table.
+	 *
+	 * The user will be prompted by a dialog for entering a row height. If in table editing
+	 * mode, all rows of the table will get their height set. If the there is a cell selection,
+	 * all rows spanned by the selection will get their height set. If there is no cell
+	 * selection, the rows spanned by the active cell will get their height set.
+	 *
+	 * If no table is selected, then this slot does nothing.
+	 */
+	void itemSelection_SetTableRowHeights();
+
+	/**
+	 * Sets the width of columns in a table.
+	 *
+	 * The user will be prompted by a dialog for entering a column width. If in table editing
+	 * mode, all columns of the table will get their width set. If the there is a cell selection,
+	 * all columns spanned by the selection will get their width set. If there is no cell
+	 * selection, the columns spanned by the active cell will get their width set.
+	 *
+	 * If no table is selected, then this slot does nothing.
+	 */
+	void itemSelection_SetTableColumnWidths();
+
+	/**
+	 * Distributes rows in a table evenly.
+	 *
+	 * If in table edit mode and there is a cell selection, each contigous range of selected rows
+	 * is distributed. If there is no cell selection, all rows in the table are distributed.
+	 *
+	 * If there is no table selected, then this slot does nothing.
+	 */
+	void itemSelection_DistributeTableRowsEvenly();
+
+	/**
+	 * Distributes columns in a table evenly.
+	 *
+	 * If in table edit mode and there is a cell selection, each contigous range of selected columns
+	 * is distributed. If there is no cell selection, all columns in the table are distributed.
+	 *
+	 * If there is no table selected, then this slot does nothing.
+	 */
+	void itemSelection_DistributeTableColumnsEvenly();
+
+	/**
+	 * Adjusts the size of the frames of any selected tables to fit the size of the tables they contain.
+	 *
+	 * If there are no tables in the current selection, then this slot does nothing.
+	 */
+	void itemSelection_AdjustFrameToTable();
+
+	/**
+	 * Adjusts the size of any selected tables to fit the size of their frames.
+	 *
+	 * If there are no tables in the current selection, then this slot does nothing.
+	 */
+	void itemSelection_AdjustTableToFrame();
+
 	void undoRedoBegin();
 	void undoRedoDone();
 

Modified: branches/ScribusOIF/scribus/scribusstructs.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/scribusstructs.h
==============================================================================
--- branches/ScribusOIF/scribus/scribusstructs.h (original)
+++ branches/ScribusOIF/scribus/scribusstructs.h Sat Oct  8 18:21:50 2011
@@ -301,6 +301,7 @@
 	modeInsertPDFLinkAnnotation,
 	modeDrawFreehandLine,
 	modeDrawTable,
+	modeDrawTable2, // Temporary name for new tables.
 	modePanning,
 	modeMeasurementTool,
 	modeEditGradientVectors,
@@ -316,7 +317,8 @@
 	modeEditArc,
 	modeEditPolygon,
 	modeDrawSpiral,
-	modeEditSpiral
+	modeEditSpiral,
+	modeEditTable
 };
 
 struct AlignObjs

Modified: branches/ScribusOIF/scribus/scribusview.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/scribusview.cpp
==============================================================================
--- branches/ScribusOIF/scribus/scribusview.cpp (original)
+++ branches/ScribusOIF/scribus/scribusview.cpp Sat Oct  8 18:21:50 2011
@@ -84,6 +84,7 @@
 #include "pageitem_pathtext.h"
 #include "pageitem_polygon.h"
 #include "pageitem_polyline.h"
+#include "pageitem_table.h"
 #include "pageitem_textframe.h"
 #include "pageitem_latexframe.h"
 #include "prefscontext.h"
@@ -1570,56 +1571,65 @@
 
 bool ScribusView::slotSetCurs(int x, int y)
 {
-	PageItem *currItemGeneric;
-	if (GetItem(&currItemGeneric))
-	{
-		if (!((currItemGeneric->asTextFrame()) || (currItemGeneric->asImageFrame())))
-			return false;
-		if (currItemGeneric->asImageFrame())
+	PageItem *item;
+	if (!GetItem(&item))
+		return false;
+
+	PageItem_TextFrame *textFrame;
+	QPointF canvasPoint;
+	if (item->isTextFrame())
+	{
+		textFrame = item->asTextFrame();
+		canvasPoint = m_canvas->globalToCanvas(QPoint(x,y)).toQPointF();
+	}
+	else if (item->isTable())
+	{
+		// Move to cell under cursor and position the text cursor.
+		PageItem_Table *table = item->asTable();
+		table->moveTo(table->cellAt(m_canvas->globalToCanvas(QPoint(x,y)).toQPointF()));
+		textFrame = table->activeCell().textFrame();
+		canvasPoint = table->getTransform().inverted().map(m_canvas->globalToCanvas(QPoint(x, y)).toQPointF()) - table->gridOffset();
+	}
+	else if (item->isImageFrame())
+		return true;
+	else
+		return false;
+
+
+	if (m_canvas->frameHitTest(canvasPoint, textFrame) == Canvas::INSIDE)
+	{
+		// #9592 : layout must be valid here, or screenToPosition() may crash
+		if (!textFrame->textLayout->isValid())
+			textFrame->layout();
+		if(textFrame->reversed())
+		{ //handle Right to Left writing
+			FPoint point(textFrame->width() - (canvasPoint.x() - textFrame->xPos()), canvasPoint.y() - textFrame->yPos());
+			textFrame->itemText.setCursorPosition(textFrame->itemText.length() == 0 ? 0 :
+				textFrame->textLayout->screenToPosition(point));
+		}
+		else
+		{
+			FPoint point(canvasPoint.x() - textFrame->xPos(), canvasPoint.y() - textFrame->yPos());
+			textFrame->itemText.setCursorPosition(textFrame->itemText.length() == 0 ? 0 :
+				textFrame->textLayout->screenToPosition(point));
+		}
+
+		if (textFrame->itemText.length() > 0)
+		{
+			int pos = qMax(qMin(textFrame->itemText.cursorPosition() - 1, textFrame->itemText.length()), 0);
+			Doc->currentStyle.charStyle() = textFrame->itemText.charStyle(pos);
+			emit ItemCharStyle(Doc->currentStyle.charStyle());
+			emit ItemTextEffects(Doc->currentStyle.charStyle().effects());
+			emit ItemTextAlign(textFrame->itemText.paragraphStyle(pos).alignment());
 			return true;
-		PageItem_TextFrame *currItem=currItemGeneric->asTextFrame();
-		if (currItem==0)
-			return false;
-		
-		FPoint pf(m_canvas->globalToCanvas(QPoint(x,y)));
-		if( m_canvas->frameHitTest(QPointF(pf.x(),pf.y()), currItem) == Canvas::INSIDE )
-		{
-			// #9592 : layout must be valid here, or screenToPosition() may crash
-			if (!currItem->textLayout->isValid())
-				currItem->layout();
-
-			QTransform transform = currItem->getTransform();
-			FPoint point(pf.x() - currItem->xPos(), pf.y() - currItem->yPos());
-			if (transform.isInvertible() && currItem->itemText.length() > 0)
-			{
-				double tx = 0, ty = 0;
-				transform.inverted().map(pf.x(), pf.y(), &tx, &ty);
-				point.setXY(tx, ty);
-			}
-			if (currItem->reversed())
-				point.setX(currItem->width() - point.x());
-			currItem->itemText.setCursorPosition( currItem->itemText.length() == 0 ? 0 :
-				currItem->textLayout->screenToPosition(point) );
-
-			if (currItem->itemText.length() > 0)
-			{
-				int b = qMin(currItem->itemText.cursorPosition()- 1, currItem->itemText.length());
-				if (b < 0)
-					b = 0;
-				Doc->currentStyle.charStyle() = currItem->itemText.charStyle(b);
-				emit ItemCharStyle(Doc->currentStyle.charStyle());
-				emit ItemTextEffects(Doc->currentStyle.charStyle().effects());
-				emit ItemTextAlign(currItem->itemText.paragraphStyle(b).alignment());
-				return true;
-			}
-			else
-			{
-				Doc->currentStyle.charStyle() = currItem->itemText.defaultStyle().charStyle();
-				emit ItemCharStyle(currItem->itemText.defaultStyle().charStyle());
-				emit ItemTextEffects(currItem->itemText.defaultStyle().charStyle().effects());
-				emit ItemTextAlign( 0 );
-				return true;
-			}
+		}
+		else
+		{
+			Doc->currentStyle.charStyle() = textFrame->itemText.defaultStyle().charStyle();
+			emit ItemCharStyle(textFrame->itemText.defaultStyle().charStyle());
+			emit ItemTextEffects(textFrame->itemText.defaultStyle().charStyle().effects());
+			emit ItemTextAlign(0);
+			return true;
 		}
 	}
 	return false;

Modified: branches/ScribusOIF/scribus/styles/CMakeLists.txt
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/styles/CMakeLists.txt
==============================================================================
--- branches/ScribusOIF/scribus/styles/CMakeLists.txt (original)
+++ branches/ScribusOIF/scribus/styles/CMakeLists.txt Sat Oct  8 18:21:50 2011
@@ -15,6 +15,8 @@
   linestyle.cpp
   charstyle.cpp
   paragraphstyle.cpp
+  tablestyle.cpp
+  cellstyle.cpp
 )
 
 QT4_WRAP_CPP(SCRIBUS_STYLES_MOC_SOURCES ${SCRIBUS_STYLES_MOC_CLASSES})

Modified: branches/ScribusOIF/scribus/styles/styleset.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/styles/styleset.h
==============================================================================
--- branches/ScribusOIF/scribus/styles/styleset.h (original)
+++ branches/ScribusOIF/scribus/styles/styleset.h Sat Oct  8 18:21:50 2011
@@ -67,16 +67,22 @@
 	StyleSet() : styles(), m_context(NULL), m_default(NULL) {}
 	
 	~StyleSet() { 
-		clear(); 
-	}
-	
-	void clear() { 
+		clear(false);
+	}
+	
+	/**
+	 * Deletes all styles in the style set.
+	 *
+	 * If @a invalid is <code>true</code>, this function also invalidates the style set.
+	 */
+	void clear(bool invalid = true) {
 		while(styles.count()>0) 
 		{ 
 			delete styles.front(); 
 			styles.pop_front(); 
 		}
-		invalidate();
+		if (invalid)
+			invalidate();
 	}
 
 	void setContext(const StyleContext* context) {

Modified: branches/ScribusOIF/scribus/tests/CMakeLists.txt
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/tests/CMakeLists.txt
==============================================================================
--- branches/ScribusOIF/scribus/tests/CMakeLists.txt (original)
+++ branches/ScribusOIF/scribus/tests/CMakeLists.txt Sat Oct  8 18:21:50 2011
@@ -7,13 +7,13 @@
 
 
 SET(SCRIBUS_TEST_MOC_CLASSES
-testIndex.h
+#testIndex.h
 testStoryText.h
 )
 
 SET(SCRIBUS_TEST_SOURCES
 runtests.cpp
-testIndex.cpp
+#testIndex.cpp
 testStoryText.cpp
 )
 
@@ -32,3 +32,19 @@
   COMPILE_FLAGS -DCOMPILE_SCRIBUS_MAIN_APP
   )
 
+
+# Regular unit tests below.
+#
+# These tests are built as standalone executables and runned using "make test"
+#
+
+SET(TESTS_LIBRARIES ${QT_QTTEST_LIBRARY} ${QT_LIBRARIES})
+
+# Unit tests for CellArea
+SET(CELLAREATESTS_CLASSES cellareatests.h)
+SET(CELLAREATESTS_SOURCES cellareatests.cpp ../cellarea.cpp)
+QT4_WRAP_CPP(CELLAREATESTS_SOURCES ${CELLAREATESTS_CLASSES})
+ADD_EXECUTABLE(cellareatests ${CELLAREATESTS_SOURCES})
+TARGET_LINK_LIBRARIES(cellareatests ${TESTS_LIBRARIES})
+ADD_TEST(NAME cellareatests COMMAND cellareatests)
+

Modified: branches/ScribusOIF/scribus/tests/runtests.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/tests/runtests.cpp
==============================================================================
--- branches/ScribusOIF/scribus/tests/runtests.cpp (original)
+++ branches/ScribusOIF/scribus/tests/runtests.cpp Sat Oct  8 18:21:50 2011
@@ -1,7 +1,7 @@
 
 #include <QTest>
 //#include "testGlyphStore.h"
-#include "testIndex.h"
+//#include "testIndex.h"
 #include "testStoryText.h"
 #include "runtests.h"
 

Modified: branches/ScribusOIF/scribus/tests/testStoryText.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/tests/testStoryText.cpp
==============================================================================
--- branches/ScribusOIF/scribus/tests/testStoryText.cpp (original)
+++ branches/ScribusOIF/scribus/tests/testStoryText.cpp Sat Oct  8 18:21:50 2011
@@ -22,7 +22,7 @@
 void TestStoryText::addText()
 {
 	StoryText story;
-	story.insertChars(0, "Hallo Welt");
+	story.insertChars(0, QString("Hallo Welt"));
 	QCOMPARE(story.length(), 10);
 	QCOMPARE(story.text(0, story.length()), QString("Hallo Welt"));
 	story.insertChars(5, " schöne neue");
@@ -32,7 +32,7 @@
 void TestStoryText::removeText()
 {
 	StoryText story;
-	story.insertChars(0, "Hallo Welt");
+	story.insertChars(0, QString("Hallo Welt"));
 	story.removeChars(5, 5);
 	QCOMPARE(story.text(0, story.length()), QString("Hallo"));	
 }
@@ -40,7 +40,7 @@
 void TestStoryText::copy()
 {
 	StoryText story1;
-	story1.insertChars(0, "Hallo Welt");
+	story1.insertChars(0, QString("Hallo Welt"));
 	StoryText story2;
 	story2.insert(0, story1);
 	QCOMPARE(story2.text(0, story2.length()), QString("Hallo Welt"));

Modified: branches/ScribusOIF/scribus/ui/about.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/ui/about.cpp
==============================================================================
--- branches/ScribusOIF/scribus/ui/about.cpp (original)
+++ branches/ScribusOIF/scribus/ui/about.cpp Sat Oct  8 18:21:50 2011
@@ -112,7 +112,7 @@
 	buildID = new QLabel( tab );
 	buildID->setAlignment(Qt::AlignCenter);
 	buildID->setTextInteractionFlags(Qt::TextSelectableByMouse);
-	QString BUILD_DAY = "16";
+	QString BUILD_DAY = "23";
 	QString BUILD_MONTH = CommonStrings::september;
 	QString BUILD_YEAR = "2011";
 	QString BUILD_TIME = "";

Modified: branches/ScribusOIF/scribus/ui/contextmenu.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/ui/contextmenu.cpp
==============================================================================
--- branches/ScribusOIF/scribus/ui/contextmenu.cpp (original)
+++ branches/ScribusOIF/scribus/ui/contextmenu.cpp Sat Oct  8 18:21:50 2011
@@ -191,6 +191,32 @@
 			addAction(m_AP->scrActions["itemAdjustFrameToImage"]);
 		if (m_actionList.contains("itemAdjustImageToFrame"))
 			addAction(m_AP->scrActions["itemAdjustImageToFrame"]);
+
+		if (m_actionList.contains("tableInsertRows"))
+			addAction(m_AP->scrActions["tableInsertRows"]);
+		if (m_actionList.contains("tableInsertColumns"))
+			addAction(m_AP->scrActions["tableInsertColumns"]);
+		if (m_actionList.contains("tableDeleteRows"))
+			addAction(m_AP->scrActions["tableDeleteRows"]);
+		if (m_actionList.contains("tableDeleteColumns"))
+			addAction(m_AP->scrActions["tableDeleteColumns"]);
+		if (m_actionList.contains("tableMergeCells"))
+			addAction(m_AP->scrActions["tableMergeCells"]);
+		if (m_actionList.contains("tableSplitCells"))
+			addAction(m_AP->scrActions["tableSplitCells"]);
+		if (m_actionList.contains("tableSetRowHeights"))
+			addAction(m_AP->scrActions["tableSetRowHeights"]);
+		if (m_actionList.contains("tableSetColumnWidths"))
+			addAction(m_AP->scrActions["tableSetColumnWidths"]);
+		if (m_actionList.contains("tableDistributeRowsEvenly"))
+			addAction(m_AP->scrActions["tableDistributeRowsEvenly"]);
+		if (m_actionList.contains("tableDistributeColumnsEvenly"))
+			addAction(m_AP->scrActions["tableDistributeColumnsEvenly"]);
+		if (m_actionList.contains("tableAdjustFrameToTable"))
+			addAction(m_AP->scrActions["tableAdjustFrameToTable"]);
+		if (m_actionList.contains("tableAdjustTableToFrame"))
+			addAction(m_AP->scrActions["tableAdjustTableToFrame"]);
+
 		if (m_actionList.contains("itemExtendedImageProperties"))
 			addAction(m_AP->scrActions["itemExtendedImageProperties"]);
 		if (m_actionList.contains("itemAdjustFrameToImage"))

Modified: branches/ScribusOIF/scribus/ui/mergedoc.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/ui/mergedoc.cpp
==============================================================================
--- branches/ScribusOIF/scribus/ui/mergedoc.cpp (original)
+++ branches/ScribusOIF/scribus/ui/mergedoc.cpp Sat Oct  8 18:21:50 2011
@@ -62,7 +62,7 @@
 		masterPageNameData = new ScComboBox(this);
 		masterPageNameData->setEnabled(false);
 		importPageLabel->setBuddy( masterPageNameData );
-		fromInfoLayout->addWidget( masterPageNameData, 1, 1 );
+		fromInfoLayout->addWidget( masterPageNameData, 1, 1, 1, 2);
 	}
 	else
 	{

Modified: branches/ScribusOIF/scribus/ui/modetoolbar.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/ui/modetoolbar.cpp
==============================================================================
--- branches/ScribusOIF/scribus/ui/modetoolbar.cpp (original)
+++ branches/ScribusOIF/scribus/ui/modetoolbar.cpp Sat Oct  8 18:21:50 2011
@@ -51,6 +51,7 @@
 	this->addAction(m_ScMW->scrActions["toolsInsertImageFrame"]);
 	this->addAction(m_ScMW->scrActions["toolsInsertRenderFrame"]);
 	this->addAction(m_ScMW->scrActions["toolsInsertTableFrame"]);
+	this->addAction(m_ScMW->scrActions["toolsInsertTable"]);
 	
 	this->addAction(m_ScMW->scrActions["toolsInsertShape"]);
 //	insertShapeButtonMenu = new QMenu();

Modified: branches/ScribusOIF/scribus/ui/propertiespalette.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/ui/propertiespalette.cpp
==============================================================================
--- branches/ScribusOIF/scribus/ui/propertiespalette.cpp (original)
+++ branches/ScribusOIF/scribus/ui/propertiespalette.cpp Sat Oct  8 18:21:50 2011
@@ -41,6 +41,7 @@
 #include "propertiespalette_image.h"
 #include "propertiespalette_line.h"
 #include "propertiespalette_shape.h"
+#include "propertiespalette_table.h"
 #include "propertiespalette_text.h"
 #include "propertiespalette_utils.h"
 #include "propertiespalette_xyz.h"
@@ -175,6 +176,14 @@
 	pageLayout_7->addWidget( Tpal );
 	idTransparencyItem = TabStack->addItem(page_7, "&Transparency" );
 
+	page_8 = new QWidget(TabStack);
+	pageLayout_8 = new QVBoxLayout(page_8);
+	pageLayout_8->setSpacing(5);
+	pageLayout_8->setMargin(0);
+	tablePal = new PropertiesPalette_Table(page_8);
+	pageLayout_8->addWidget(tablePal);
+	idTableItem = TabStack->addItem(page_8, "T&able" );
+
 //	MpalLayout->addWidget( TabStack );
 
 	setWidget( TabStack );
@@ -194,7 +203,7 @@
 	connect(Tpal, SIGNAL(editGradient()), this, SLOT(toggleGradientEditM()));
 
 	m_haveItem = false;
-	for (int ws = 1; ws < 8; ++ws)
+	for (int ws = 1; ws < 9; ++ws)
 		TabStack->setItemEnabled(ws, false);
 	TabStack->setCurrentIndex(0);
 	TabStack->widget(0)->setEnabled(false);
@@ -232,6 +241,7 @@
 	this->imagePal->setMainWindow(mw);
 	this->linePal->setMainWindow(mw);
 	this->textPal->setMainWindow(mw);
+	this->tablePal->setMainWindow(mw);
 
 	connect(this, SIGNAL(DocChanged()), m_ScMW, SLOT(slotDocCh()));
 	//connect(this->Cpal, SIGNAL(gradientChanged()), m_ScMW, SLOT(updtGradFill()));
@@ -293,6 +303,7 @@
 	imagePal->setDoc(m_doc);
 	linePal->setDoc(m_doc);
 	textPal->setDoc(m_doc);
+	tablePal->setDocument(m_doc);
 
 	updateColorList();
 
@@ -325,6 +336,8 @@
 	linePal->unsetDoc();
 	textPal->unsetItem();
 	textPal->unsetDoc();
+	tablePal->unsetItem();
+	tablePal->unsetDocument();
 
 	Cpal->setCurrentItem(NULL);
 	Cpal->setDocument(NULL);
@@ -332,7 +345,7 @@
 	Tpal->setDocument(NULL);
 
 	m_haveItem = false;
-	for (int ws = 1; ws < 8; ++ws)
+	for (int ws = 1; ws < 9; ++ws)
 		TabStack->setItemEnabled(ws, false);
 	TabStack->widget(0)->setEnabled(false);
 	TabStack->setItemEnabled(idXYZItem, false);
@@ -455,6 +468,7 @@
 	imagePal->handleSelectionChanged();
 	linePal->handleSelectionChanged();
 	textPal->handleSelectionChanged();
+	tablePal->handleSelectionChanged();
 
 	if (m_item->asOSGFrame())
 	{
@@ -463,6 +477,7 @@
 		TabStack->setItemEnabled(idGroupItem, false);
 		TabStack->setItemEnabled(idLineItem, false);
 		TabStack->setItemEnabled(idColorsItem, true);
+		TabStack->setItemEnabled(idTableItem, false);
 		TabStack->setItemEnabled(idTransparencyItem, false);
 		TabStack->setItemEnabled(idTextItem, false);
 		TabStack->setItemEnabled(idImageItem, false);
@@ -500,13 +515,14 @@
 	PageItem* currItem = currentItemFromSelection();
 	if (m_doc->m_Selection->count() > 1)
 	{
-		for (int ws = 1; ws < 8; ++ws)
+		for (int ws = 1; ws < 9; ++ws)
 			TabStack->setItemEnabled(ws, false);
 		TabStack->widget(0)->setEnabled(true);
 		TabStack->setItemEnabled(idXYZItem, true);
 		TabStack->setItemEnabled(idLineItem, false);
 		TabStack->setItemEnabled(idColorsItem, true);
 		TabStack->setItemEnabled(idTransparencyItem, true);
+		TabStack->setItemEnabled(idTableItem, false); // At least not for now.
 		if (m_haveItem && m_item)
 		{
 			if ((m_item->isGroup()) && (!m_item->isSingleSel))
@@ -527,7 +543,7 @@
 		{
 		case -1:
 			m_haveItem = false;
-			for (int ws = 1; ws < 8; ++ws)
+			for (int ws = 1; ws < 9; ++ws)
 				TabStack->setItemEnabled(ws, false);
 			TabStack->widget(0)->setEnabled(false);
 			TabStack->setItemEnabled(idXYZItem, false);
@@ -544,6 +560,7 @@
 				TabStack->setItemEnabled(idLineItem, false);
 				TabStack->setItemEnabled(idColorsItem, true);
 				TabStack->setItemEnabled(idTransparencyItem, false);
+				TabStack->setItemEnabled(idTableItem, false);
 				TabStack->setItemEnabled(idTextItem, false);
 				TabStack->setItemEnabled(idImageItem, false);
 			}
@@ -600,6 +617,16 @@
 			TabStack->setItemEnabled(idColorsItem, false);
 			TabStack->setItemEnabled(idTransparencyItem, false);
 			break;
+		case PageItem::Table:
+			TabStack->setItemEnabled(idTableItem, true);
+			TabStack->setItemEnabled(idShapeItem, true);
+			TabStack->setItemEnabled(idTextItem, false);
+			TabStack->setItemEnabled(idImageItem, false);
+			TabStack->setItemEnabled(idLineItem, false);
+			TabStack->setItemEnabled(idGroupItem, false);
+			TabStack->setItemEnabled(idColorsItem, false);
+			TabStack->setItemEnabled(idTransparencyItem, false);
+			break;
 		}
 	}
 	if (TabStack->isItemEnabled(currentTab) && (TabStack->currentIndex() != currentTab))
@@ -861,7 +888,7 @@
 
 	groupPal->updateColorList();
 	textPal->updateColorList();
-
+	tablePal->updateColorList();
 	Cpal->updateColorList();
 	Tpal->updateColorList();
 
@@ -898,6 +925,7 @@
 	TabStack->setItemText(idColorsItem, tr("&Colors"));
 	TabStack->setItemText(idGroupItem, tr("&Group"));
 	TabStack->setItemText(idTransparencyItem, tr("&Transparency"));
+	TabStack->setItemText(idTableItem, tr("T&able"));
 
 	xyzPal->languageChange();
 	shapePal->languageChange();
@@ -905,6 +933,7 @@
 	imagePal->languageChange();
 	linePal->languageChange();
 	textPal->languageChange();
+	tablePal->languageChange();
 }
 
 const VGradient PropertiesPalette::getMaskGradient()

Modified: branches/ScribusOIF/scribus/ui/propertiespalette.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/ui/propertiespalette.h
==============================================================================
--- branches/ScribusOIF/scribus/ui/propertiespalette.h (original)
+++ branches/ScribusOIF/scribus/ui/propertiespalette.h Sat Oct  8 18:21:50 2011
@@ -37,6 +37,7 @@
 class PropertiesPalette_Image;
 class PropertiesPalette_Line;
 class PropertiesPalette_Shape;
+class PropertiesPalette_Table;
 class PropertiesPalette_Text;
 class PropertiesPalette_XYZ;
 class ScComboBox;
@@ -74,6 +75,7 @@
 	PropertiesPalette_Image* imagePal;
 	PropertiesPalette_Line*  linePal;
 	PropertiesPalette_Shape* shapePal;
+	PropertiesPalette_Table* tablePal;
 	PropertiesPalette_Text*  textPal;
 	PropertiesPalette_XYZ*   xyzPal;
 	Cpalette *Cpal;
@@ -124,6 +126,7 @@
 	QVBoxLayout* pageLayout_5;
 	QVBoxLayout* pageLayout_6;
 	QVBoxLayout* pageLayout_7;
+	QVBoxLayout* pageLayout_8;
 
 	QVBoxLayout* page_group_layout;
 	
@@ -134,6 +137,7 @@
 	QWidget* page_5;
 	QWidget* page_6;
 	QWidget* page_7;
+	QWidget* page_8;
 	QWidget* page_group;
 
 	QToolBox* TabStack;
@@ -149,6 +153,7 @@
 	
 	int idXYZItem;
 	int idShapeItem;
+	int idTableItem;
 	int idTextItem;
 	int idImageItem;
 	int idLineItem;

Modified: branches/ScribusOIF/scribus/ui/resourcecollection.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/scribus/ui/resourcecollection.h
==============================================================================
--- branches/ScribusOIF/scribus/ui/resourcecollection.h (original)
+++ branches/ScribusOIF/scribus/ui/resourcecollection.h Sat Oct  8 18:21:50 2011
@@ -20,6 +20,9 @@
 #include <QList>
 #include <QMap>
 #include <QString>
+
+class ColorList;
+class SCFonts;
 
 /** 
 *   A simple structure which holds the names of all resources & styles used in a doc or part of a document.

Modified: branches/ScribusOIF/win32/vc9/Scribus.vcproj
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/win32/vc9/Scribus.vcproj
==============================================================================
--- branches/ScribusOIF/win32/vc9/Scribus.vcproj (original)
+++ branches/ScribusOIF/win32/vc9/Scribus.vcproj Sat Oct  8 18:21:50 2011
@@ -397,6 +397,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\canvasgesture_cellselect.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\canvasgesture_columnresize.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\canvasgesture_linemove.cpp"
 				>
 			</File>
@@ -413,10 +421,22 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\canvasgesture_rowresize.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\canvasgesture_rulermove.cpp"
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\canvasgesture_table.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\canvasgesture_tableresize.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\canvasmode.cpp"
 				>
 			</File>
@@ -465,6 +485,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\canvasmode_edittable.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\canvasmode_eyedropper.cpp"
 				>
 			</File>
@@ -501,6 +525,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\cellarea.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\styles\cellstyle.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\charselect.cpp"
 				>
 			</File>
@@ -545,6 +577,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\collapsedtablepainter.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\collect4output.cpp"
 				>
 			</File>
@@ -849,6 +885,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\inserttablecolumnsdialog.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\inserttablerowsdialog.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\inspage.cpp"
 				>
 			</File>
@@ -1065,6 +1109,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\pageitem_table.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\pageitem_textframe.cpp"
 				>
 			</File>
@@ -1325,6 +1373,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\propertiespalette_table.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\propertiespalette_text.cpp"
 				>
 			</File>
@@ -1805,6 +1857,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\smcellstyle.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\smcellstylewidget.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\smcheckbox.cpp"
 				>
 			</File>
@@ -1865,6 +1925,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\smtablestyle.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\smtablestylewidget.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\smtabruler.cpp"
 				>
 			</File>
@@ -1938,6 +2006,34 @@
 			</File>
 			<File
 				RelativePath="..\..\scribus\ui\symbolpalette.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\tableborder.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\tablecell.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\tablecolumnwidthsdialog.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\tablerowheightsdialog.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\tablesideselector.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\styles\tablestyle.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\tableutils.cpp"
 				>
 			</File>
 			<File
@@ -2448,6 +2544,42 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\canvasgesture_cellselect.h"
+				>
+				<FileConfiguration
+					Name="Debug-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\scribus\canvasgesture_columnresize.h"
+				>
+				<FileConfiguration
+					Name="Debug-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
 				RelativePath="..\..\scribus\canvasgesture_linemove.h"
 				>
 			</File>
@@ -2464,6 +2596,24 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\canvasgesture_rowresize.h"
+				>
+				<FileConfiguration
+					Name="Debug-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
 				RelativePath="..\..\scribus\canvasgesture_rulermove.h"
 				>
 				<FileConfiguration
@@ -2482,6 +2632,42 @@
 				</FileConfiguration>
 			</File>
 			<File
+				RelativePath="..\..\scribus\canvasgesture_table.h"
+				>
+				<FileConfiguration
+					Name="Debug-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\scribus\canvasgesture_tableresize.h"
+				>
+				<FileConfiguration
+					Name="Debug-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
 				RelativePath="..\..\scribus\canvasmode.h"
 				>
 				<FileConfiguration
@@ -2600,6 +2786,24 @@
 				</FileConfiguration>
 			</File>
 			<File
+				RelativePath="..\..\scribus\canvasmode_edittable.h"
+				>
+				<FileConfiguration
+					Name="Debug-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
 				RelativePath="..\..\scribus\canvasmode_eyedropper.h"
 				>
 			</File>
@@ -2664,6 +2868,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\cellarea.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\styles\cellstyle.h"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\charselect.h"
 				>
 				<FileConfiguration
@@ -2818,6 +3030,10 @@
 						Name="moc.exe"
 					/>
 				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\scribus\collapsedtablepainter.h"
+				>
 			</File>
 			<File
 				RelativePath="..\..\scribus\collect4output.h"
@@ -3896,6 +4112,42 @@
 				</FileConfiguration>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\inserttablecolumnsdialog.h"
+				>
+				<FileConfiguration
+					Name="Debug-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\inserttablerowsdialog.h"
+				>
+				<FileConfiguration
+					Name="Debug-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\inspage.h"
 				>
 				<FileConfiguration
@@ -4696,6 +4948,24 @@
 				</FileConfiguration>
 			</File>
 			<File
+				RelativePath="..\..\scribus\pageitem_table.h"
+				>
+				<FileConfiguration
+					Name="Debug-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
 				RelativePath="..\..\scribus\pageitem_textframe.h"
 				>
 				<FileConfiguration
@@ -5763,6 +6033,24 @@
 			</File>
 			<File
 				RelativePath="..\..\scribus\ui\propertiespalette_shape.h"
+				>
+				<FileConfiguration
+					Name="Debug-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\propertiespalette_table.h"
 				>
 				<FileConfiguration
 					Name="Debug-cairo|Win32"
@@ -7204,6 +7492,42 @@
 				</FileConfiguration>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\smcellstyle.h"
+				>
+				<FileConfiguration
+					Name="Debug-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\smcellstylewidget.h"
+				>
+				<FileConfiguration
+					Name="Debug-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\smcheckbox.h"
 				>
 				<FileConfiguration
@@ -7474,6 +7798,42 @@
 				</FileConfiguration>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\smtablestyle.h"
+				>
+				<FileConfiguration
+					Name="Debug-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\smtablestylewidget.h"
+				>
+				<FileConfiguration
+					Name="Debug-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\smtabruler.h"
 				>
 				<FileConfiguration
@@ -7734,6 +8094,84 @@
 						Name="moc.exe"
 					/>
 				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\scribus\tableborder.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\tablecell.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\tablecolumnwidthsdialog.h"
+				>
+				<FileConfiguration
+					Name="Debug-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\scribus\tablehandle.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\tablepainter.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\tablerowheightsdialog.h"
+				>
+				<FileConfiguration
+					Name="Debug-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\tablesideselector.h"
+				>
+				<FileConfiguration
+					Name="Debug-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release-cairo|Win32"
+					>
+					<Tool
+						Name="moc.exe"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\scribus\styles\tablestyle.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\tableutils.h"
+				>
 			</File>
 			<File
 				RelativePath="..\..\scribus\ui\tabmanager.h"
@@ -8203,6 +8641,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\ui_inserttablecolumnsdialog.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\ui_inserttablerowsdialog.h"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui_lensdialogbase.h"
 				>
 			</File>
@@ -8379,6 +8825,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\ui_propertiespalette_tablebase.h"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\ui_propertiespalette_textbase.h"
 				>
 			</File>
@@ -8467,6 +8917,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\ui_smcellstylewidget.h"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\ui_smcstylewidget.h"
 				>
 			</File>
@@ -8483,6 +8937,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\ui_smtablestylewidget.h"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\ui_spiralvectorbase.h"
 				>
 			</File>
@@ -8492,6 +8950,14 @@
 			</File>
 			<File
 				RelativePath="..\..\scribus\ui\ui_stylemanager.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\ui_tablecolumnwidthsdialog.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\ui_tablerowheightsdialog.h"
 				>
 			</File>
 			<File
@@ -8592,10 +9058,30 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\moc_canvasgesture_cellselect.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\moc_canvasgesture_columnresize.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\moc_canvasgesture_rowresize.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\moc_canvasgesture_rulermove.cpp"
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\moc_canvasgesture_table.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\moc_canvasgesture_tableresize.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\moc_canvasmode.cpp"
 				>
 			</File>
@@ -8616,6 +9102,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\moc_canvasmode_edittable.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\moc_canvasmode_measurements.cpp"
 				>
 			</File>
@@ -8848,6 +9338,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\moc_inserttablecolumnsdialog.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\moc_inserttablerowsdialog.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\moc_inspage.cpp"
 				>
 			</File>
@@ -9012,6 +9510,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\moc_pageitem_table.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\moc_pageitem_textframe.cpp"
 				>
 			</File>
@@ -9244,6 +9746,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\moc_propertiespalette_table.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\moc_propertiespalette_text.cpp"
 				>
 			</File>
@@ -9480,6 +9986,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\moc_smcellstyle.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\moc_smcellstylewidget.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\moc_smcheckbox.cpp"
 				>
 			</File>
@@ -9536,6 +10050,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\moc_smtablestyle.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\moc_smtablestylewidget.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\moc_smtabruler.cpp"
 				>
 			</File>
@@ -9585,6 +10107,18 @@
 			</File>
 			<File
 				RelativePath="..\..\scribus\ui\moc_symbolpalette.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\moc_tablecolumnwidthsdialog.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\moc_tablerowheightsdialog.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\moc_tablesideselector.cpp"
 				>
 			</File>
 			<File
@@ -9721,6 +10255,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\inserttablecolumnsdialog.ui"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\inserttablerowsdialog.ui"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\latexeditor.ui"
 				>
 			</File>
@@ -9909,6 +10451,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\propertiespalette_tablebase.ui"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\propertiespalette_textbase.ui"
 				>
 			</File>
@@ -9997,6 +10543,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\smcellstylewidget.ui"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\smcstylewidget.ui"
 				>
 			</File>
@@ -10017,6 +10567,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\scribus\ui\smtablestylewidget.ui"
+				>
+			</File>
+			<File
 				RelativePath="..\..\scribus\ui\spiralvectorbase.ui"
 				>
 			</File>
@@ -10026,6 +10580,14 @@
 			</File>
 			<File
 				RelativePath="..\..\scribus\ui\stylemanager.ui"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\tablecolumnwidthsdialog.ui"
+				>
+			</File>
+			<File
+				RelativePath="..\..\scribus\ui\tablerowheightsdialog.ui"
 				>
 			</File>
 			<File

Modified: branches/ScribusOIF/win32/vc9/scriptplugin/scriptplugin.vcproj
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=16894&path=/branches/ScribusOIF/win32/vc9/scriptplugin/scriptplugin.vcproj
==============================================================================
--- branches/ScribusOIF/win32/vc9/scriptplugin/scriptplugin.vcproj (original)
+++ branches/ScribusOIF/win32/vc9/scriptplugin/scriptplugin.vcproj Sat Oct  8 18:21:50 2011
@@ -222,6 +222,10 @@
 			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
 			>
 			<File
+				RelativePath="..\..\..\scribus\plugins\scriptplugin\cmdcell.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\..\..\scribus\plugins\scriptplugin\cmdcolor.cpp"
 				>
 			</File>
@@ -263,6 +267,10 @@
 			</File>
 			<File
 				RelativePath="..\..\..\scribus\plugins\scriptplugin\cmdstyle.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\scribus\plugins\scriptplugin\cmdtable.cpp"
 				>
 			</File>
 			<File
@@ -327,6 +335,10 @@
 			Filter="h;hpp;hxx;hm;inl;inc"
 			>
 			<File
+				RelativePath="..\..\..\scribus\plugins\scriptplugin\cmdcell.h"
+				>
+			</File>
+			<File
 				RelativePath="..\..\..\scribus\plugins\scriptplugin\cmdcolor.h"
 				>
 			</File>
@@ -368,6 +380,10 @@
 			</File>
 			<File
 				RelativePath="..\..\..\scribus\plugins\scriptplugin\cmdstyle.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\..\scribus\plugins\scriptplugin\cmdtable.h"
 				>
 			</File>
 			<File




More information about the scribus-commit mailing list